Java 在maven中运行多个概要文件以构建zip,但面临一些依赖性问题
我正在尝试创建两个zip文件,一个用于测试,另一个用于生产。 xml如下所示Java 在maven中运行多个概要文件以构建zip,但面临一些依赖性问题,java,maven,maven-assembly-plugin,Java,Maven,Maven Assembly Plugin,我正在尝试创建两个zip文件,一个用于测试,另一个用于生产。 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"&
<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.abc</groupId>
<version>1.0.0</version>
<artifactId>abc</artifactId>
<packaging>pom</packaging>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>a.abc</groupId>
<artifactId>abc1</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>a.abc</groupId>
<artifactId>abc2</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>a.abc</groupId>
<artifactId>abc3</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>b.xyz</groupId>
<artifactId>xyz1</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>b.xyz</groupId>
<artifactId>xyz2</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>b.xyz</groupId>
<artifactId>xyz3</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<finalName>app-${project.version}</finalName>
</build>
<profiles>
<profile>
<id>test</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.4</version>
<configuration>
<appendAssemblyId>true</appendAssemblyId>
<!-- <finalName>${project.name}</finalName> -->
</configuration>
<executions>
<execution>
<id>app-package-test</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<descriptor>src/main/assembly/test-descriptor.xml</descriptor>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>a.abc</groupId>
<artifactId>abc1</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>a.abc</groupId>
<artifactId>abc2</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>a.abc</groupId>
<artifactId>abc3</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
</profile>
<profile>
<id>production</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.4</version>
<configuration>
<appendAssemblyId>true</appendAssemblyId>
<finalName>${project.name}</finalName>
</configuration>
<executions>
<execution>
<id>app-package-production</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<descriptor>src/main/assembly/production-descriptor.xml</descriptor>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>b.xyz</groupId>
<artifactId>xyz1</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>b.xyz</groupId>
<artifactId>xyz2</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>b.xyz</groupId>
<artifactId>xyz3</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
</profile>
</profiles>
</project>
4.0.0
com.abc
1.0.0
abc
聚甲醛
a、 abc
abc1
1.0.0
a、 abc
abc2
1.0.0
a、 abc
abc3
1.0.0
b、 xyz
xyz1
1.0.0
b、 xyz
xyz2
1.0.0
b、 xyz
xyz3
1.0.0
app-${project.version}
测试
真的
maven汇编插件
2.4
真的
应用程序包测试
包裹
单一的
src/main/assembly/test-descriptor.xml
a、 abc
abc1
1.0.0
a、 abc
abc2
1.0.0
a、 abc
abc3
1.0.0
生产
真的
maven汇编插件
2.4
真的
${project.name}
应用程序包制作
包裹
单一的
src/main/assembly/production-descriptor.xml
b、 xyz
xyz1
1.0.0
b、 xyz
xyz2
1.0.0
b、 xyz
xyz3
1.0.0
但是,当我运行mvn clean install时,它将从
<activation>
<activeByDefault>true</activeByDefault>
</activation>
真的
但最终捆绑拉链同时包含配置文件测试和生产
我需要profiletest生成的zip与testprofile相关,profileproduction生成的zip与productionprofile相关
有人知道为什么会发生这种情况吗?如果两个配置文件都处于活动状态,那么两个配置文件依赖项都包含在ZIP中是合乎逻辑的,因为您的构建默认会激活两个配置文件。要获得只包含生产依赖项的ZIP,只需启动
mvn clean install-Pproduction
,如果两个配置文件都处于活动状态,那么将两个配置文件依赖项都包含在ZIP中是合乎逻辑的,因为您的构建默认会激活两个配置文件。要获得只包含生产依赖项的ZIP,只需启动mvn clean install-Pproduction