使用依赖管理访问Maven属性 - java

我正在使用maven的依赖项管理将POM导入到项目Y中,如下所示:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.abc</groupId>
            <artifactId>X</artifactId>
            <version>1.0</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

我的工件X具有要在项目Y的POM中访问的以下属性:

<properties>
    <property1>value1</property1>
    <property2>value2</property2>
</properties>

我无法将X中定义的属性访问到Project Y中。我理解,使用上述方法无法使用插件管理,但是无法找到与Web上的属性相关的任何内容。

还请注意,因为我们已经定义了项目级别的父级,所以我不能将工件X用作父级。

请您指导一下。

参考方案

如果将其声明为父级,则只能从另一个pom继承属性。如documentation中所述,导入类型为import的pom仅会导入其依赖项。由于在您的情况下无法将其他pom用作父项,因此,我建议一种替代方法:

Codehaus Properties Maven Plugin可以从外部文件加载Maven属性。它甚至可以使用classpath: URL从中加载文件。因此,您可以尝试从另一个依赖项(应该具有适当的scope)加载那些依赖项,因为您可能不希望该依赖项的JAR在运行时徘徊。

无法在Maven surefire中运行多个执行? - java

我想运行名称以ResourceTest.java结尾的测试类,因此我在执行后定义了它们。<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <co…

无法从ArrayList <String>转换为List <Comparable> - java

当我写下面的代码时,编译器说 无法从ArrayList<String>转换为List<Comparable>private List<Comparable> get(){ return new ArrayList<String>(); } 但是当我用通配符编写返回类型时,代码会编译。private List&l…

合并List <T>和List <Optional <T >> - java

鉴于: List<Integer> integers = new ArrayList<>(Arrays.asList( 10, 12 )); List<Optional<Integer>> optionalIntegers = Arrays.asList( Optional.of(5), Optional.em…

实例化类型<?>的泛型类 - java

我正在为SCJP / OCPJP学习,并且遇到了一个对我来说很奇怪的示例问题。该示例代码实例化了两个通用集合:List<?> list = new ArrayList<?>(); List<? extends Object> list2 = new ArrayList<? extends Object>(); …

List <Dog>是List <Animal>的子类吗?为什么Java泛型不是隐式多态的? - java

我对Java泛型如何处理继承/多态感到困惑。假设以下层次结构-动物(父母)狗-猫(儿童)因此,假设我有一个方法doSomething(List<Animal> animals)。根据继承和多态性的所有规则,我假设List<Dog>是List<Animal>,而List<Cat>是List<Animal&g…