如何在构建Maven Java项目时包含其他Java项目

如何在构建Maven Java项目时包含其他Java项目,java,eclipse,maven,dependencies,Java,Eclipse,Maven,Dependencies,我有两个项目,Java项目和Maven Java项目。 我使用这个pom设置将Maven Java项目构建为可运行的jar文件 <build> <plugins> <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <fina

我有两个项目,Java项目和Maven Java项目。 我使用这个pom设置将Maven Java项目构建为可运行的jar文件

<build>
    <plugins>
        <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <configuration>
                <finalName>ISO8583PostpaidServer</finalName>
                <!-- <finalName>ISO8583PrepaidServer</finalName> -->
                <archive>
                    <manifest>
                        <!-- If you want to compile as Prepaid change this class reference -->
                        <mainClass>PostpaidServer</mainClass>
                        <!-- <mainClass>PrepaidServer</mainClass> -->
                    </manifest>
                </archive>

                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>

                <appendAssemblyId>false</appendAssemblyId>
            </configuration>
        </plugin>

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>

    </plugins>
  </build>

maven汇编插件
ISO85831服务器
后置辅助服务器
带有依赖项的jar
假的
org.apache.maven.plugins
maven编译器插件
1.8
1.8
但是我得到了一个错误,因为在我的构建路径中,我向我的Java项目添加了依赖项。如何将标准Java项目作为依赖项添加到我的Maven项目中


无论如何,谢谢你:)

正如你所说的,你的问题是你依赖的Java项目不是用maven管理的

我认为你有两个选择:

  • 将该项目转换为maven项目,并创建多模块maven项目。如果您是其他项目的所有者,这将非常方便
  • 构建该项目,使用
    jar
    并创建您自己的本地maven repo。如果您无法管理另一个项目,或者您只想将其用作依赖项,那么这非常方便
1.转换为MAVEN并创建多模块 如果您有项目源,并且您可以更改它,因为它是您自己的,那么最好的选择是:

  • 转换为maven项目
  • 创建一个包含两个模块的父maven项目:您的项目和转换后的项目
  • 添加依赖项
转换为maven项目 将Java标准项目转换为maven项目并不困难:

  • 将源代码和资源路径更改为
    src/main/java/
    src/main/resources/
  • 声明依赖项
  • 配置插件
如果您是该项目的所有者并控制该项目,则可以在几分钟内对其进行转换。如果你不能控制这个项目,这可能是一项乏味的任务

创建父项目 转换从属项目后,按如下方式创建新的项目结构:

parent
 ├── module1
 │   ├── src ...
 │   └── pom.xml
 ├── module1
 │   ├── src ...
 │   └── pom.xml
 └── pom.xml
<repositories>
    <repository>
        <id>local-repo</id>
        <name>Local Repo</name>
        <url>file://${project.basedir}/local-libs</url>
    </repository>
</repositories>
<dependency>
    <groupId>GROUP</groupId>
    <artifactId>ARTIFACT</artifactId>
    <version>VERSION</version>
</dependency>
您的父级
pom.xml
将声明一个
modules
节以包含这两个模块,您的模块
pom.xml
将包含一个
parent
节以引用父级项目

母体聚甲醛 此命令将把jar作为
GROUP.ARTIFACT.VERSION
存储到本地maven存储库中(而不是
HOME/.m2/存储库中)

在项目pom上声明本地maven回购协议 创建本地maven repo后,在
pom.xml
中声明它,如下所示:

parent
 ├── module1
 │   ├── src ...
 │   └── pom.xml
 ├── module1
 │   ├── src ...
 │   └── pom.xml
 └── pom.xml
<repositories>
    <repository>
        <id>local-repo</id>
        <name>Local Repo</name>
        <url>file://${project.basedir}/local-libs</url>
    </repository>
</repositories>
<dependency>
    <groupId>GROUP</groupId>
    <artifactId>ARTIFACT</artifactId>
    <version>VERSION</version>
</dependency>

本地回购
本地回购
文件://${project.basedir}/local libs
声明依赖项 创建并声明本地maven回购协议后,使用它。创建一个依赖项,如下所示:

parent
 ├── module1
 │   ├── src ...
 │   └── pom.xml
 ├── module1
 │   ├── src ...
 │   └── pom.xml
 └── pom.xml
<repositories>
    <repository>
        <id>local-repo</id>
        <name>Local Repo</name>
        <url>file://${project.basedir}/local-libs</url>
    </repository>
</repositories>
<dependency>
    <groupId>GROUP</groupId>
    <artifactId>ARTIFACT</artifactId>
    <version>VERSION</version>
</dependency>

团体
人工制品
版本
你不需要做任何其他事情


一旦您创建了本地maven repo,每个获得repo的程序员都可以立即工作,无需再次运行任何
mvn
命令

使用Eclipse最简单的方法是:

  • 将Java项目转换为Maven项目,
    Configure->Convert to Maven项目
    。填写
    组Id
    工件Id
    版本

  • runas->Maven安装

  • 在要使用它们的项目中,在
    pom.xml


  • POM中没有添加依赖项。请参考:解决方案足够长,因此只提供URL。是的,当然还没有添加,如何添加以及在哪里?谢谢你。@Suyash我已经看到了教程,但是在这种情况下,我有两个maven项目。在我的例子中,一个是作为依赖项的标准java项目,另一个是Maven项目。您是否尝试过: