簡體   English   中英

構建Maven Java項目時如何包含其他Java項目

[英]How to include other Java Project when build Maven Java Project

我有兩個項目, Java ProjectMaven Java Project 我使用這個 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>

但是我收到一個錯誤,因為在我的 Build Path 中我添加了對Java Project 的依賴。 如何將標准 Java 項目作為依賴項添加到我的 Maven 項目?

還是很感謝你 :)

正如您所說,您的問題是您依賴於未使用 maven 管理的 Java 項目。

我認為你有兩個選擇:

  • 將該項目轉換為 Maven 項目,並創建一個多模塊 Maven 項目。 如果您是另一個項目的所有者,這會很方便。
  • 構建該項目,獲取jar並創建您自己的本地 Maven 存儲庫。 這在您無法管理其他項目或只想用作依賴項的情況下很方便。

1.轉換為Maven並創建多模塊

如果您有項目源,並且您可以更改它,因為它是您自己的,最好的選擇是:

  • 轉換為 Maven 項目
  • 創建一個包含兩個模塊的父 maven 項目:您的項目和轉換后的項目。
  • 添加依賴。

轉換為 Maven 項目

將 Java Standard 項目轉換為 maven 項目並不難:

  • 將源和資源路徑更改為src/main/java/src/main/resources/
  • 聲明依賴關系。
  • 配置插件。

如果您是所有者並控制該項目,則可以在幾分鍾內對其進行改造。 如果您無法控制項目,這可能是一項乏味的任務。

創建父項目

轉換依賴項目后,創建一個新的項目結構,如下所示:

parent
 ├── module1
 │   ├── src ...
 │   └── pom.xml
 ├── module1
 │   ├── src ...
 │   └── pom.xml
 └── pom.xml

您的父pom.xml將聲明一個modules部分以包含兩個模塊,您的模塊pom.xml將包含一個parent部分以引用父項目。

父 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>GROUP</groupId>
    <artifactId>PARENT</artifactId>
    <packaging>pom</packaging>
    <version>VERSION</version>

    ...

    <modules>
        <module>module1</module>
        <module>module2</module>
    </modules>

    ...

模塊 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">

    <parent>
        <groupId>GROUP</groupId>
        <artifactId>PARENT</artifactId>
        <version>VERSION</version>
    </parent>

    <modelVersion>4.0.0</modelVersion>

    <artifactId>MODULE1</artifactId>
    <packaging>jar</packaging>

聲明依賴

最后在module1上聲明對module2的依賴

<dependency>
    <groupId>GROUP</groupId>
    <artifactId>MODULE2</artifactId>
    <version>VERSION</version>
</dependency>

2. 自己的本地 Maven 回購選項

在這種情況下,最有趣的選擇是將您的依賴jar部署在私人/企業 Nexus 或 Artifactory 上。

但是,如果您無權訪問私人/公司存儲庫,則可以在項目中使用本地 Maven 存儲庫。 這種方式有一個優勢,因為所有程序員都無需命令即可解決所有依賴項。

創建本地存儲庫

首先,您必須創建一個文件夾來存儲本地 Maven 存儲庫。 我將在您的存儲庫的根路徑中執行此操作,例如將其稱為local-libs

然后,當您要添加私有 jar 時,請運行以下命令:

mvn org.apache.maven.plugins:maven-install-plugin:2.3.1:install-file \
    -Dfile=YOU_FILE.jar \
    -DgroupId=GROUP \
    -DartifactId=ARTIFACT \
    -Dversion=VERSION \
    -Dpackaging=jar \
    -DlocalRepositoryPath=local-libs

此命令會將您的 jar 存儲到您的本地 maven 存儲庫(而不是您的HOME/.m2/repository )作為GROUP.ARTIFACT.VERSION

在你的項目 pom 上聲明本地 Maven 倉庫

創建本地 maven 存儲庫后,在pom.xml聲明它,如下所示:

<repositories>
    <repository>
        <id>local-repo</id>
        <name>Local Repo</name>
        <url>file://${project.basedir}/local-libs</url>
    </repository>
</repositories>

聲明依賴

創建並聲明本地 maven 存儲庫后,請使用它。 創建一個依賴如下:

<dependency>
    <groupId>GROUP</groupId>
    <artifactId>ARTIFACT</artifactId>
    <version>VERSION</version>
</dependency>

而且您無需執行任何其他操作。

一旦你創建了你的本地 maven repo,每個獲得你的 repo 的程序員都可以立即工作,不需要再次運行任何mvn命令。

Eclipse 最簡單的方法是:

  1. 將 Java 項目轉換為 Maven 項目, Configure->Convert to Maven Project 填寫Group IdArtifact Idversion

  2. Run As->Maven install

  3. 在你想要使用它們的項目中,在pom.xml添加上面創建的依賴信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM