我想出了这个简化的测试用例,它解决了我正在从事的一个大型项目遇到的问题。重要的一点是仅在特定配置文件中激活一些代码及其依赖项。这是演示它的POM文件:
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>mytest</groupId>
<artifactId>project1</artifactId>
<version>1.0</version>
<properties>
<src.dir>src/main/java</src.dir>
</properties>
<build>
<sourceDirectory>${src.dir}</sourceDirectory>
</build>
<profiles>
<profile>
<id>fox</id>
<properties>
<src.dir>src/fox/java</src.dir>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.8.1</version>
</dependency>
</dependencies>
</profile>
</profiles>
</project>
在相对于POM的目录src / fox / java / project1中,我使用pom的jar依赖项获得了这个简单的类:
package project1;
import org.apache.commons.lang3.BooleanUtils;
public class C1 {
public static void main(String[] args) {
System.out.println(BooleanUtils.isTrue(Boolean.FALSE));
}
}
我可以使用此命令构建上面的项目而没有问题:
mvn -Pfox package
但是我不知道如何正确地将此Maven项目导入Eclipse。如果我在Eclipse中打开其POM并在“ Dependencies”选项卡中进行观察,则可以看到异常。默认情况下,commons-lang3 jar文件不显示。仅当我单击“显示继承的依赖项”按钮时,它前面才会带有图标,大概表示它是“继承”的。
但是我不知道可以从哪里“继承”它。如果不使用这些配置文件,我还想将其显示为“正常”依赖项。
我确实在导入时指定了概要文件“ fox”,并验证了它是在Eclipse中选择的。我还尝试了Eclipse的“更新项目”选项,该选项没有任何作用。
如果这不是我遇到的更大问题的征兆,那么它本身不会打扰我。在我们的应用程序中,如示例中的项目是另一个带有WAR打包项目的依赖项。并且,当将这样的项目部署到在Eclipse下运行的Tomcat时,图片中的jar不会包含在部署描述中,因此该应用程序自然不会运行。