我今天尝试使用 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编辑可以让我今天发布我的项目?
我有以下场景,简化:
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等
问题:有没有办法以干净的方式实现这一点,而无需在很多地方重新声明依赖关系?
我为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
我正在咨询一个关于使用 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 添加到另一个项目的类路径中,但它似乎对我不起作用。
我不希望手动添加所有子模块作为依赖项。
我正在使用 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 用作父项,因为我们已经定义了项目级别的父项。
你能不能指导一下。
我在构建项目期间遇到奇怪的问题。问题可能归结为对 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) 我在集成测试期间的项目结构如下。
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) 我们的团队有多个项目;大多数项目只是库。为简单起见,让我们假设这些库不相互依赖,并且有一个使用它们的项目,例如:
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) 我有自己的 java 库创建为 Maven 项目,并在 pom.xml 中包含一些依赖项
我想将项目导出为 jar 并将其包含到其他 Maven 项目中。
问题是我需要将库的 pom.xml 中的所有依赖项复制到 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。