직장에서 springboot 프레임워크로 구축된 Java 웹 프로젝트를 접했는데, 타사 푸시 기능을 통합해야 했기 때문에 Xiaomi 푸시 서비스를 사용하고 관련 jar 패키지를 다운로드했습니다. 프로젝트에 로컬 jar를 도입하는 것은 큰 문제가 아닙니다. 코드를 작성한 후에는 테스트 클래스 테스트를 통과하는 데 문제가 없습니다. 그런 다음 패키징하고 개발 서버에 배포할 준비를 합니다. 프로젝트는 tomcat을 통해 배포되기 때문에 패키징 방식은 war 패키지로 되어 있습니다. 패키징한 후 개발 서버에 업로드하고, 작성된 푸시 인터페이스를 테스트해 보았는데 실패했습니다.
분석 결과, packaged war에서 프로젝트 종속 jar가 저장되어 있는 lib 디렉터리에 로컬로 도입된 push 관련 jar 패키지가 없는 것으로 나타났습니다. 30분 동안 고민한 끝에 문제가 해결되었습니다. 문제를 해결하고 나니 실제로는 메이븐에 대한 기본 지식을 잊어버렸다는 사실을 알게 되었습니다. 다음은 로컬 jar 패키지를 소개하는 springboot 프로젝트와 maven 패키징을 통해 jar를 lib 폴더에 패키징하는 방법에 대한 요약입니다.
참고: 로컬 jar를 여기에서 가져오므로
<dependency> ... <!-- 表示当前jar是外部引入的,maven不会在repository查找它 --> <scope>system</scope> <!-- 指定引入的外部jar存放的路径,一般将jar包放在项目的某个目录下,通过相对路径指定 --> <systemPath>...</systemPath> </dependency>
<build> <finalName>xxxxxx</finalName> <plugins> <!--配置将第三方jar打进jar包中,跟<packaging>jar</packaging>配合,如果不写,springboot默认是打成jar包--> <!--<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <!-- 项目中单独引入第三方jar时,includeSystemScope值要为true <includeSystemScope>true</includeSystemScope> </configuration> </plugin>--> <!-- 打war包 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>3.2.2</version> <configuration> <webResources> <!-- 配置将第三方jar打进war包中,跟<packaging>war</packaging>配合 --> <webResource> <directory>${pom.basedir}/src/main/resources/lib/</directory> <targetPath>WEB-INF/lib/</targetPath> <includes> <include>**/*.jar</include> </includes> </webResource> </webResources> </configuration> </plugin> </plugins> </build>
프로젝트의 필요에 따라 jar 패키지 또는 war 패키지로 배포할 수 있습니다. 다른 구성을 추가해야 합니다. war 패키지로 패키징해야 하는 경우 pom.xml 파일에
관련 인터페이스를 호출하여 테스트할 수도 있고, 가져온 로컬 jar가 배포 패키지의 lib 폴더에 있는지 직접 관찰하여 확인할 수도 있습니다
위 내용은 springboot 프로젝트에 로컬 종속성 jar 패키지를 도입하고 lib 폴더에 패키지하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!