【问题标题】:Maven not loading dependency on local artifactMaven不加载对本地工件的依赖
【发布时间】:2019-06-18 16:59:31
【问题描述】:

我创建了自己的 jar 文件,并希望将其作为依赖项连接到另一个项目。 jar 内部有自己的 pom 文件和依赖项。 将 jar 与系统范围连接时,我遇到了一个问题 - maven 不加载依赖项 jar。

也许我在构建 jar 时忘记了一些插件?

如何从本地 jar 制作 maven 加载依赖项?

POM 我的 Jar 文件

<groupId>ru.qa.eso</groupId>
<artifactId>push-qa</artifactId>
<version>0.1.0-alfa</version>
<packaging>jar</packaging>
<name>PushQA</name>

<properties>
    <selenide.version>5.2.3</selenide.version>
    <rest-assured.version>3.3.0</rest-assured.version>
    <cucumber.version>4.2.0</cucumber.version>
    <lombok.version>1.18.4</lombok.version>
    <logback.version>1.3.0-alpha4</logback.version>
    <jul-to-slf4j.version>1.7.25</jul-to-slf4j.version>
    <allure.version>2.9.0</allure.version>
    <maven-surefire-plugin.version>3.0.0-M3</maven-surefire-plugin.version>
    <aspectjweaver.version>1.9.2</aspectjweaver.version>
    <allure-maven.version>2.10.0</allure-maven.version>
    <reflections.version>0.9.11</reflections.version>
    <maven.compiler.targer>1.8</maven.compiler.targer>
    <maven.compiler.source>1.8</maven.compiler.source>
</properties>

<dependencies>
    <dependency>
        <groupId>com.codeborne</groupId>
        <artifactId>selenide</artifactId>
        <version>${selenide.version}</version>
    </dependency>
    <dependency>
        <groupId>io.cucumber</groupId>
        <artifactId>cucumber-core</artifactId>
        <version>${cucumber.version}</version>
    </dependency>
    <dependency>
        <groupId>io.cucumber</groupId>
        <artifactId>cucumber-java8</artifactId>
        <version>${cucumber.version}</version>
    </dependency>
    <dependency>
        <groupId>io.cucumber</groupId>
        <artifactId>cucumber-junit</artifactId>
        <version>${cucumber.version}</version>
    </dependency>
    <dependency>
        <groupId>io.rest-assured</groupId>
        <artifactId>rest-assured</artifactId>
        <version>${rest-assured.version}</version>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>${lombok.version}</version>
    </dependency>
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>${logback.version}</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>jul-to-slf4j</artifactId>
        <version>${jul-to-slf4j.version}</version>
    </dependency>
    <dependency>
        <groupId>io.qameta.allure</groupId>
        <artifactId>allure-rest-assured</artifactId>
        <version>2.10.0</version>
    </dependency>
    <dependency>
        <groupId>io.qameta.allure</groupId>
        <artifactId>allure-junit4</artifactId>
        <version>${allure.version}</version>
    </dependency>
    <dependency>
        <groupId>io.qameta.allure</groupId>
        <artifactId>allure-cucumber4-jvm</artifactId>
        <version>${allure.version}</version>
    </dependency>
    <dependency>
        <groupId>io.qameta.allure</groupId>
        <artifactId>allure-selenide</artifactId>
        <version>${allure.version}</version>
    </dependency>
    <dependency>
        <groupId>org.reflections</groupId>
        <artifactId>reflections</artifactId>
        <version>${reflections.version}</version>
    </dependency>
    <dependency>
        <groupId>com.github.mifmif</groupId>
        <artifactId>generex</artifactId>
        <version>1.0.2</version>
    </dependency>
    <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>LATEST</version>
    </dependency>
    <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>27.1-jre</version>
    </dependency>
    <dependency>
        <groupId>io.rest-assured</groupId>
        <artifactId>json-schema-validator</artifactId>
        <version>3.3.0</version>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <target>${maven.compiler.targer}</target>
                <source>${maven.compiler.source}</source>
            </configuration>
        </plugin>

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <version>3.0.1</version>
            <executions>
                <execution>
                    <id>attach-resource-bundle</id>
                    <goals>
                        <goal>resource-bundle</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <encoding>UTF-8</encoding>
                <additionalOptions>-Xdoclint:none</additionalOptions>
                <additionalJOption>-Xdoclint:none</additionalJOption>
            </configuration>
        </plugin>

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <version>3.0.1</version>
            <executions>
                <execution>
                    <id>attach-sources</id>
                    <goals>
                        <goal>jar</goal>
                        <goal>jar</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

<profiles>
    <profile>
        <id>dev</id>
        <properties>
            <argline>-Dfile.encoding=UTF-8</argline>
            <loggerLevel>INFO</loggerLevel>
            <startOnServer>false</startOnServer>
        </properties>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
    </profile>
    <profile>
        <id>server</id>
        <properties>
            <argline>-Dfile.encoding=UTF-8</argline>
            <loggerLevel>DEBUG</loggerLevel>
            <startOnServer>true</startOnServer>
        </properties>
    </profile>
</profiles>

POM 我的项目,我想在其中包含我的 jar

<groupId>ru.qa.eso</groupId>
<artifactId>SomeName</artifactId>
<version>1.0-SNAPSHOT</version>

<dependencies>
    <dependency>
        <groupId>ru.qa.eso</groupId>
        <artifactId>push-qa</artifactId>
        <version>0.1.0-alfa</version>
    </dependency>
</dependencies>

【问题讨论】:

  • 您可能想要添加您的 pom.xml 文件并更清楚地说明,例如带有项目需要来自另一个项目的依赖项的变量。那么项目 A 是您的本地项目并且需要项目 B 的某些东西,还是您想将本地项目 A 集成为项目 B 的依赖项?使用系统路径,如果路径是本地的,您通常会收到警告。正确的方法是使用 maven install 将项目安装到本地 maven 存储库,然后它应该可以解决..
  • 将我的本地项目 A 作为对项目 B 的依赖项集成。项目库 A 的所有依赖项。 mvn install 没有帮助。我怀疑,我错误地构建了 jar 文件。
  • 这就是为什么发布你的 pom.xml 会让我们有机会分析正在发生的事情
  • 对不起。我应该知道的。
  • “maven 不加载依赖项 jar” - 你怎么知道?如果您遇到错误,请将其包含在问题中。

标签: java maven dependencies


【解决方案1】:

请使用“mvn install”或“mvn clean install”来构建依赖jar。然后在依赖项目中添加该依赖项并构建。希望它能解决您的问题

【讨论】:

  • 很遗憾没有(
【解决方案2】:

您可以尝试将作用域包含为依赖项的编译,如下所示:

 <dependency>
        <groupId>ru.qa.eso</groupId>
        <artifactId>push-qa</artifactId>
        <version>0.1.0-alfa</version>
        <scope>compile</scope>
    </dependency>

请通过以下链接获取有关范围的更多详细信息。 Scope of Dependency

希望这对您有所帮助。

【讨论】:

    猜你喜欢
    • 2010-11-03
    • 1970-01-01
    • 2013-12-29
    • 1970-01-01
    • 1970-01-01
    • 2017-06-12
    • 1970-01-01
    • 1970-01-01
    • 2011-07-14
    相关资源
    最近更新 更多