相关疑难解决方法(0)

我可以在没有安装的情况下将jar添加到maven 2 build classpath吗?

在实验/快速和肮脏的模拟开发阶段,Maven2让我发疯.

我有一个pom.xml文件定义了我想要使用的web-app框架的依赖项,我可以从该文件快速生成启动项目.但是,有时我想链接到尚未pom.xml定义文件的第三方库,所以不是pom.xml手动创建第三方库的文件并安装它,并将依赖项添加到我的pom.xml,我只是想告诉Maven:"除了我定义的依赖项,还要包含任何罐子/lib."

看起来这应该很简单,但如果是这样,我就会遗漏一些东西.

任何关于如何做到这一点的指针都非常感谢.除此之外,如果有一种简单的方法将maven指向一个/lib目录并轻松创建一个pom.xml所有封闭的jar映射到单个依赖项,然后我可以一次命名/安装和链接就足够了.

java maven-2

686
推荐指数
14
解决办法
38万
查看次数

缺少项目的POM,没有可用的依赖项信息

背景

尝试使用Java 1.7的干净安装Apache Maven 3.1.0将Java库添加到本地Maven存储库.以下是添加Java归档文件的方法:

mvn install:install-file \
  -DgroupId=net.sourceforge.ant4x \
  -DartifactId=ant4x \
  -Dversion=0.3.0 \
  -Dfile=ant4x-0.3.0.jar \
  -Dpackaging=jar
Run Code Online (Sandbox Code Playgroud)

这创建了以下目录结构:

$HOME/.m2/repository/net/sourceforge/ant4x/
??? 0.3.0
?   ??? ant4x-0.3.0.jar.lastUpdated
?   ??? ant4x-0.3.0.pom.lastUpdated
??? ant4x
    ??? 0.3.0
    ?   ??? ant4x-0.3.0.jar
    ?   ??? ant4x-0.3.0.pom
    ?   ??? _remote.repositories
    ??? maven-metadata-local.xml
Run Code Online (Sandbox Code Playgroud)

项目的pom.xml文件引用依赖项目(上面的树),如下所示:

<properties>
  <java-version>1.5</java-version>
  <net.sourceforge.ant4x-version>0.3.0</net.sourceforge.ant4x-version>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
...
<dependency>
  <groupId>net.sourceforge</groupId>
  <artifactId>ant4x</artifactId>
  <version>${net.sourceforge.ant4x-version}</version>
  <scope>provided</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)

问题

运行后mvn compile,返回以下错误(完全登录Pastebin):

[ERROR] Failed to execute goal on project ant4docbook: Could not resolve dependencies for project net.sourceforge:ant4docbook:jar:0.6-SNAPSHOT: Failure …
Run Code Online (Sandbox Code Playgroud)

java compilation build pom.xml maven

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

作为 Maven 构建过程的一部分,将 Jar 依赖安装到本地存储库

我有一个第三方 jar,它是我的项目的依赖项。由于业务限制,我无法访问企业或公司存储库,这绝对是我对此问题的偏好。但不管怎样,这个第三方 jar 是不公开的,所以它被包含在src\main\resources.

这是一个 Maven 项目,因此我将此第三方 jar 列为编译时依赖项,并在我的 pom 中包含一个构建插件,该插件将作为构建过程的一部分将第三方 jar 安装到我的本地存储库;我告诉 Mavenvalidate在构建生命周期的阶段执行这个目标,据我所知,这是在任何其他 Maven 阶段之前。

但是,当我运行 aclean install并清除我的本地存储库时,由于第三方 jar 无法在本地或 Maven 中央存储库中解析,因此构建失败。据我所知,我已经正确设置了 pom,我应该看到 Maven 在开始依赖解析之前尝试在本地安装第三方 jar。

问题是,如果在本地安装 jar 之前列出了依赖项,则构建将由于无法解决该依赖项而失败。如果我删除第三方 jar 声明并运行构建,发生依赖项解析之后(这是它在清理之后所做的第一件事),但在任何其他阶段之前,它将在本地安装 jar 并且一切正常。但据我所知,它应该validate在收集和解析依赖项之前运行该阶段,因此 jar应该在 Maven 解析之前在本地安装。有什么想法或想法吗?

我的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>com.company</groupId>
    <artifactId>project</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>
    <name>Web Services</name>
    <description>This project will handle communication.</description>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <build>
        <plugins>
            <!-- This plugin installs the Evip …
Run Code Online (Sandbox Code Playgroud)

java eclipse dependencies maven

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

标签 统计

java ×3

maven ×2

build ×1

compilation ×1

dependencies ×1

eclipse ×1

maven-2 ×1

pom.xml ×1