내 프로젝트는 아래 2 개의 종속성에 따라 다릅니다.JAR의 2 가지 버전 따기
<dependency>
<groupId>com.myorg.projectA</groupId>
<artifactId>projectA</artifactId>
<version>0.0.1-RELEASE</version>
</dependency>
<dependency>
<groupId>com.myorg.projectB</groupId>
<artifactId>projectB</artifactId>
<version>0.0.1-RELEASE</version>
</dependency>
이러한 종속성은 모두 morphia
의 다른 버전에 따라 다릅니다. 프로젝트를 빌드 할 때 오직 하나의 변형 만 선택됩니다. morphia
버전이 필요합니다.
여기에 this 솔루션을 기반으로 추가 한 내용이 있지만 작동하지 않는 것 같습니다.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<descriptor>src/assembly/dep.xml</descriptor>
</configuration>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>org.mongodb.morphia</groupId>
<artifactId>morphia</artifactId>
<classifier>server</classifier>
<version>1.3.2</version>
<type>jar</type>
</artifactItem>
<artifactItem>
<groupId>org.mongodb.morphia</groupId>
<artifactId>morphia</artifactId>
<classifier>server</classifier>
<version>0.110</version>
<type>jar</type>
</artifactItem>
</artifactItems>
<outputDirectory>${project.build.directory}/dependency/</outputDirectory>
</configuration>
</execution>
내 어셈블리 파일 dep.xml
<?xml version='1.0' encoding='UTF-8'?>
<assembly>
<id>jar-with-dependencies</id>
<formats>
<format>jar</format>
</formats>
<dependencySets>
<dependencySet>
<scope>runtime</scope>
<unpack>true</unpack>
<unpackOptions>
<excludes>
<exclude>**/LICENSE*</exclude>
<exclude>**/README*</exclude>
</excludes>
</unpackOptions>
</dependencySet>
</dependencySets>
<fileSets>
<fileSet>
<directory>${project.build.directory}/dependency</directory>
<outputDirectory>/dependency</outputDirectory>
<filtered>false</filtered>
<includes>
<include>*.jar</include>
</includes>
<fileMode>0600</fileMode>
</fileSet>
</fileSets>
내가 모르핀의 버전이 다운로드되는 또는 내 dependency
폴더에 복사 모두 표시되지 않습니다.
먼저 maven-assembly-plugin 원인 [maven-assembly-plugin] (http://maven.apache.org/plugins/maven-assembly-plugin/plugin-info.html)의 목표와 혼동을 느낍니다. 단 하나의 목표'single'는 목표'copy-dependencies'를 가지고 있지 않습니다 ... 또한 만약 당신이 morphia의 두 버전을 classpath에 놓고 싶다면? 그것은 단순히 당신이 원하는 것이 아닌 클래스 패스의 순서에 달려 있습니다. 당신은 하나가 사용될 결정을 내려야합니다 ... – khmarbaise
Morphia의 어떤 버전을 원하십니까? 최신 버전은 이전 서버와 호환되므로 일반적으로 최신 Morphia가 프로젝트에 필요합니다. –
@NicCottrell 우리는'morphia-1.3.2'와'morphia-0.110'을 사용하고 있습니다. 그들이 호환되는지 확실하지 않습니다. 비록 그것이 그렇다고해도, 그들은 Mongo 운전자와도 호환되어야한다. 두 lib는 서로 다른 드라이버 버전으로 서로 다른 몽고에 연결됩니다. – user1324887