SpringBoot + 로컬 LIB 디렉토리에 항아리 패키지로 동시에 Maven은 전쟁 패키지에서 재생

1. 소개

        SpringBoot 메이븐과 우리의 개발의 출현이 말하는 모든 것이 두 가지 측면을 가지고로, 메이븐 패키지 SpringBoot을 사용하여 프로젝트를 기록하기 위해 여기에 문제가있을 것입니다 간단한 장소가, 큰 편의를 제공 할 때 로컬 참조 나타납니다 타사 항아리 패키지를 실행합니다.

문제의 설명

        그것에 치어 파일 종속성과 항아리 패키지에 지정된 프로젝트, 일반적으로 타사 항아리 패키지를 참조 SpringBoot이 해당 항아리 패키지 삽입 자동으로 받는다는 받는다는 아주 정상 작동, 구성 의존한다 패키지 받는다는는 다음 WEB-INF / lib 디렉토리에 항아리 패키지에 따라 달라집니다 때, 개발 시간이, 항아리 패키지의 클래스와 메소드에 직접 도입 할 수있는 프로젝트에 참여, 행복, 어떻게 행복 -
        하지만 항상있다 어떤 이유에 열이있는 경우, 공용 창고에 존재하지 않는 당신의 항아리 패키지에 다른 사람을 소개하기 위해 제공해야 인해 프로젝트는 더 나은 PW는 PW에는 두통을 시작합니다.
        어떤 사람들은 지역 받는다는 저장소에 새로운 디렉토리를 만들고, 그들에 항아리 패키지 사용자 지정 경로 다음에 pom.xml 파일에 추가 말할 해당 <종속성> 구성 괜찮을 것입니다! 이 실제로 가능하지만,이 방법은 소스 코드를 유지 프로젝트 개발 및 엔지니어링 팀에 도움이되지 않습니다, 그래서 계정에 코드의 무결성을 복용, 직접 컴파일 실행할 수 있습니다 프로젝트에서 다운로드 한 코드에 영향을주지 않는, 프로그램은 기절 가.
        몇 가지 관련 정보를 검토 한 결과, 우리는 발견 사용 <의존성>에서 <SYSTEMPATH> 타사 참조 항아리 패키지의 효과를 얻을 수 있으며, 다음이 같은 사실 includeSystemScope에 스프링 부팅 받는다는 - 플러그인을 설정합니다

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.st.springboot</groupId>
    <artifactId>ingredients-java</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>
    
    <name>ingredients-java</name>
    
	<dependencies>
		<dependency>
	        <groupId>org.bouncycastle</groupId>
	        <artifactId>bcprov-jdk16</artifactId>
	        <version>1.46</version>
	        <scope>system</scope>
	        <systemPath>${project.basedir}/src/main/resources/jar/bcprov-jdk16-1.46.jar</systemPath>
	    </dependency>
    </dependencies>
	<build>
		<plugins>
			<plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <includeSystemScope>true</includeSystemScope>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

설정은 그 생각하면, 매우 행복 완료, 심지어 가방의 내용도 IDE를 표시 할 수 있습니다 참조 :
그림 삽입 설명 여기
나는 모두의 만족을 생각하지만, 개발 된 프로그램의 문제, 패키지 배포가 나는 로컬 참조 항아리를 발견 패키지는 프로젝트의 원래 위치에 여전히 WEB-INF 디렉토리, 항아리 패키지에 lib 디렉토리에 충돌 일어 서서하지 않습니다!

이 문제를 해결합니다

        시간 먼저 전쟁 패키지에 가서 참조 된 모든 LIB 디렉토리 항아리 패키지, 실제로 성공적으로 이동 배치 전쟁 패키지를 작동 할 밖으로 실행됩니다. 일일는 ...... 냉각 용하지 않을 배포 받는다는 일반 자동 포장을 설정하고자한다면 이것은 근본적인 문제가 해결되지, 아하지가
        특별히 주소 받는다는 플러그인-A를 제공하고, 해결책을 찾기 위해 정보에 계속 접근을, 그리고 마지막으로 작업을 갚는다 로컬 패키지 및 받는다는 전쟁 - 플러그인이라는 것은 의문을 참조 할 때 전쟁 패키지 싸움!
나는이 같은 다음의 pom.xml되었다 그래서 :

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.st.springboot</groupId>
    <artifactId>ingredients-java</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>
    
    <name>ingredients-java</name>
    
	<dependencies>
		<dependency>
	        <groupId>org.bouncycastle</groupId>
	        <artifactId>bcprov-jdk16</artifactId>
	        <version>1.46</version>
	        <scope>system</scope>
	        <systemPath>${project.basedir}/src/main/resources/jar/bcprov-jdk16-1.46.jar</systemPath>
	    </dependency>
    </dependencies>
	<build>
		<plugins>
			<plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <includeSystemScope>true</includeSystemScope>
                </configuration>
            </plugin>
            <!-- 下面是为了将本地jar包打入WEB-INF/lib下而增加的配置-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>3.2.2</version>
                <configuration>
                    <webResources>
                        <resource>
                        	<!-- 指向的是包含你所有要用jar包的目录 -->
                            <directory>${project.basedir}/src/main/resources/jar</directory> 
                            <!-- 编译后要把这些jar包复制到的位置 -->
                            <targetPath>WEB-INF/lib</targetPath>  
                        </resource>
                    </webResources>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

구성 후, WEB-INF에서 득점 지역 항아리 패키지 완벽한을 발견, 다시 패키지 명령을 실행 / lib에이 문제가 해결되었습니다!

다른 곳에 관심을 지불 할 필요가 인해 받는다는 전쟁 - 플러그인의 사용,이, 병 때문에 포장은 ~ 이런 경우에는 적용되지 않습니다

출시 두 원저 · 원의 칭찬 0 · 조회수 65

추천

출처blog.csdn.net/ZuoRuoNuanYang/article/details/104300612