有两个Maven项目。项目A和项目B。B使用A作为依赖项。当我将B构建为战争时,Maven会导出A及其依赖项。如何告诉Maven在导出时不要单独包含此依赖关系树?我找不到在Maven War配置中的排除标签。
注意:我无法在依赖项中使用提供的范围,因为我需要使用它来使用嵌入式tomcat进行测试。
项目B Pom的片段
<dependencies>
<!-- Project A -->
<dependency>
<groupId>test</groupId>
<artifactId>test-core</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.1</version>
<configuration>
<encoding>UTF-8</encoding>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<path>/</path>
<port>80</port>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.2</version>
<configuration>
<!-- Exclude Tag is not available in configuration -->
</configuration>
</plugin>
</plugins>
答案 0 :(得分:1)
您需要创建配置文件,可以创建两个配置文件,一个用于开发(嵌入到tomcat,使用dep A),另一个用于生产(不使用dep)
<profiles>
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<dependencies>
<dependency>
<!-- dep A -->
</dependency>
</dependencies>
</profile>
<profile>
<id>prod</id>
<dependencies>
<dependency>
<!-- dep A -->
<scope>provided</scope>
</dependency>
</dependencies>
</profile>
</profiles>
答案 1 :(得分:0)
我终于决定在git中克隆一个分支,并将其称为release分支。现在它将具有不同的Pom,即将提供B中项目A的范围。在Dev分支中进行了一系列更改之后,我将把它选入release分支并构建jar。另外,我认为这对詹金斯(Jenkins)来说应该是件好事(尚未经过测试,但这是下一个)