标签: maven-dependency

如何在缺少 nvd 文件时忽略 Maven 依赖项检查失败

我今天尝试使用 Maven 发布插件执行我的项目的发布。由于dependency-check-maven插件尝试下载尚未上传的2020版CVD文件而失败:

无法下载元文件:https : //nvd.nist.gov/feeds/json/cve/1.1/nvdcve-1.1-2020.meta ; 收到 404 -- 未找到资源

NVD 数据馈送页面的简要阅读显示该文件尚未上传。
在此处输入图片说明

显然我可以等待大约 24 小时,这个问题可能会消失;但是,我仍然想知道如何覆盖此 URL 以在今天发布我的项目。我尝试了一些命令行选项,包括以下方面的变化:

mvn dependency-check:check -DcveUrlBase= https://nvd.nist.gov/feeds/json/cve/1.1/nvdcve-1.1-2019.json.gz

但是,它们仍然会导致错误。我知道我可以跳过此检查,但更愿意在 2020 年之前检查所有文件。

这个问题建议使用nist-data-mirror插件创建一个本地存储库,但与等待 24 小时相比,这似乎有很多开销。

是否有任何命令行或易于恢复的pom.xml编辑可以让我今天发布我的项目?

编辑:这已在插件站点报告为问题

maven maven-dependency maven-dependency-check-plugin

9
推荐指数
1
解决办法
5442
查看次数

如何使用已标记为已提供的项目的依赖项?

我有以下场景,简化:

projectX  ---> projectA ---> projectB
Run Code Online (Sandbox Code Playgroud)

--->指"依赖".

ProjectB非常简单.它没有声明任何依赖.事实上,唯一相关的部分是:

<packaging>jar</packaging>
Run Code Online (Sandbox Code Playgroud)

在projectA的pom.xml中,我已经向projectB声明了依赖项:

<packaging>jar</packaging>
<dependencies>
    <dependency>
        <groupId>com.mycompany</groupId>
        <artifactId>projectB</artifactId>
        <version>1.0.0</version>
        <scope>provided</scope>
    </dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)

在projectX的pom.xml中我有:

<packaging>war</packaging>
<dependencies>
    <dependency>
        <groupId>com.mycompany</groupId>
        <artifactId>projectA</artifactId>
        <version>1.0.0</version>
        <scope>compile</scope>
    </dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)

问题是projectX需要使用projectB中定义的组件(类等).如果我将projectA中的范围更改compile为用于projectB,那么一切都会起作用,但是在projectX中生成war时将包含projectB,并且我需要将这个库从生成的war中取出,因为我在其他部分提供了projectB该项目.

在真实场景中,我有几个依赖项,比如projectB,它们会影响projectA,所以为了减少生成的war的大小,我想按照提供的方式设置它们,但是projectX不能使用任何这些库中定义的组件.组件示例:Spring,Hibernate等

问题:有没有办法以干净的方式实现这一点,而无需在很多地方重新声明依赖关系?

java pom.xml maven-3 maven maven-dependency

7
推荐指数
1
解决办法
234
查看次数

如何在没有ChromeDriver.exe的Maven中使用selenium-chrome-driver

我为Opening Chrome添加了以下依赖项和代码,但浏览器未打开.

<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-chrome-driver</artifactId>
<version>2.50.0</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

我的代码: -

package example;
import org.openqa.selenium.WebDriver;`
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.Test;
public class DepChrome {

    @Test
    public void testBrowser() {
    WebDriver driver = new ChromeDriver();
    driver.manage().window().maximize();
    }
}
Run Code Online (Sandbox Code Playgroud)

selenium google-chrome maven selenium-webdriver maven-dependency

6
推荐指数
3
解决办法
4万
查看次数

使用 pom-packaging maven 项目作为依赖

我正在咨询一个关于使用 pom 打包 Maven 项目作为另一个项目中的依赖项的问题。我尝试阅读maven的文档并在线搜索,但我发现很少有解决方案。

pom-packaging项目由多个jar打包的子模块组成,类似于:

<project ...>
    <groupId>the.pom.project</groupId>
    <artifactId>pom-project</artifactId>
    <version>1.0</version>
    <packaging>pom</packaging>

    <modules>
            <module>a-pom-module</module>
            <module>b-pom-module</module>
            <module>c-pom-module</module>
            <module>d-pom-module</module>
            <module>e-pom-module</module>
            <module>f-pom-module</module>
    </modules>
</project>
Run Code Online (Sandbox Code Playgroud)

另一个项目依赖于pom-project的子模块jar。我这样写:

<project ...>
    <groupId>the.another.project</groupId>
    <artifactId>another-project</artifactId>
    <version>1.0</version>
    <packaging>jar</packaging>

    <dependencyManagement>
            <dependencies>
                    <dependency>
                            <groupId>the.pom.project</groupId>
                            <artifactId>pom-project</artifactId>
                            <version>1.0</version>
                            <type>pom</type>
                    </dependency>
            </dependencies>
    </dependencyManagement>
</project>
Run Code Online (Sandbox Code Playgroud)

我尝试将 pom 项目添加为依赖项,旨在将所有子模块 jar 添加到另一个项目的类路径中,但它似乎对我不起作用。

我不希望手动添加所有子模块作为依赖项。

java pom.xml maven maven-dependency

6
推荐指数
1
解决办法
6276
查看次数

使用依赖管理访问 Maven 属性

我正在使用 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>
Run Code Online (Sandbox Code Playgroud)

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

<properties>
    <property1>value1</property1>
    <property2>value2</property2>
</properties>
Run Code Online (Sandbox Code Playgroud)

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

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

你能不能指导一下。

java dependency-management maven maven-dependency

6
推荐指数
1
解决办法
5143
查看次数

com.sun.xml.ws:jaxws-rt:pom:2.2.10 的 POM 无效

我在构建项目期间遇到奇怪的问题。问题可能归结为对 jaxws-rt 2.2.10 的依赖。主要问题是这个警告阻止传递依赖关系传播到我们的可分发文件。 The POM for com.sun.xml.ws:jaxws-rt:pom:2.2.10 is invalid, transitive dependencies (if any) will not be available

mvn dependency:tree -Xpom 可能是错误的,如or的输出所示mvn dependency:tree -Dverbose

[WARNING] Failed to build parent project for com.sun.xml.ws:bundles:pom:2.2.10
[WARNING] Failed to build parent project for com.sun.xml.ws:jaxws-rt:pom:2.2.10

[WARNING] The POM for com.sun.xml.ws:jaxws-rt:pom:2.2.10 is invalid, transitive dependencies (if any) will not be available: 5 problems were encountered while building the effective model for co
m.sun.xml.ws:jaxws-rt:2.2.10
[ERROR] 'dependencies.dependency.version' for javax.xml.bind:jaxb-api:jar is missing. @
[ERROR] 'dependencies.dependency.version' for com.sun.xml.bind:jaxb-core:jar …
Run Code Online (Sandbox Code Playgroud)

java jax-ws maven jenkins maven-dependency

6
推荐指数
1
解决办法
1万
查看次数

Maven:如何使用本地 lib 目录作为依赖项而不是 Maven 存储库

我在集成测试期间的项目结构如下。

 Project-A
    |_conf (contains the configuration files)
    |_lib  (Contains the all dependencies)
    |_pom.xml
    |_target
        |_test (Contains the integration tests)
Run Code Online (Sandbox Code Playgroud)

当我运行下面的 maven 命令时,它从 nexus 下载依赖项并指向本地存储库而不是 lib 目录。

如何告诉 Maven 检查lib文件夹中的依赖项而不是本地 Maven 存储库?

注意:lib包含测试项目所需的所有依赖项。

    mvn surefire:test
Run Code Online (Sandbox Code Playgroud)

maven-3 maven maven-surefire-plugin maven-dependency

6
推荐指数
1
解决办法
2万
查看次数

Maven:确保在多项目开发中使用相同的主要父 pom 版本

我们的团队有多个项目;大多数项目只是库。为简单起见,让我们假设这些库不相互依赖,并且有一个使用它们的项目,例如:

Project Main:
    Project Lib-A:
        X (3rd-party library)
    Project Lib-B:
        X (3rd-party library)
Run Code Online (Sandbox Code Playgroud)

为了避免在“Main”中出现意外,我们希望确保我们自己的所有项目都使用相同版本的第 3 方库,以便例如构建“Lib-A”和“Lib-B”使用相同版本的库 X 进行测试。

为了实现这一点,我们使用了一个父 pom,其中包含<dependencyManagement>详细说明所有相关 3rd-party 库的版本及其传递依赖项的部分。这个父 pom 被所有项目继承,即上面示例中的“Main”、“Lib-A”和“Lib-B”。然后每个子 pom 只会使用<dependency>而不指定任何版本。我们还有Maven 执行器插件的依赖收敛规则,以确保我们没有错过任何项目中的任何库冲突。

问题:增加 X 的版本:'Lib-A' 的开发者将 X 的版本从 1.0 增加到 2.0。因此,他更改了父 pom 中 X 的版本,增加了父 pom 的版本,释放了父 pom,并通知来自“Main”的人他们现在应该使用新的父 pom。情况变成这样:

Main - inherits from Parent:2.0 and depends on:
    Lib-A:2.0 - inherits from Parent 2.0 and depends on X:2.0
    Lib-B:1.0 - inherits from Parent 1.0 and depends on …
Run Code Online (Sandbox Code Playgroud)

maven maven-enforcer-plugin maven-dependency

6
推荐指数
1
解决办法
204
查看次数

将 Maven 导出为包含所有依赖项的 jar 文件

我有自己的 java 库创建为 Maven 项目,并在 pom.xml 中包含一些依赖项

我想将项目导出为 jar 并将其包含到其他 Maven 项目中。

问题是我需要将库的 pom.xml 中的所有依赖项复制到 Maven 项目中,在该项目中导入我的库以使其正常工作。

如何导出我的库而不需要复制我的库的依赖项。

java maven maven-dependency

5
推荐指数
1
解决办法
6992
查看次数

设置 Google Maven 依赖项以供离线使用

我只是想设置我下载的 Google Maven 依赖项:

https://d.android.com/r/studio-offline/downloads

我按照“自述文件”说明进行操作,然后尝试通过从项目的“build.gradle”中注释掉 jcenter() 和 google() 来验证一切正常。

当我尝试运行我的项目时,这是我收到的错误:

错误:找不到 com.android.tools.build:gradle:4.1.2。

错误:找不到 org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.30。

自述文件

offline gradle android-studio maven-dependency

5
推荐指数
0
解决办法
1707
查看次数