簡體   English   中英

我如何獲得m2e-WTP與Maven建立jar依賴關系?

[英]How do I get m2e-WTP to build jar dependencies with maven?

我正在使用Eclipse Luna,我有兩個Maven項目:一個Web應用程序和一個Java庫,該庫是Web應用程序的依賴項。

庫pom.xml:

<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/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.test</groupId>
  <artifactId>library</artifactId>
  <verson>0.0.1-SNAPSHOT</version>
   <build>
    <plugins>
      <plugin>
        <artifactId>maven-jar-plugin</artifactId>
        <version>2.3.2</version>
        <configuration>
          <archive>
            <manifestEntries>
              <Dependencies>just a test</Dependencies>
            </manifestEntries>
          </archive>
        </configuration>
      </plugin>
    </plugins>
   </build>
</project>

webApp pom.xml:

<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/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.test</groupId>
  <artifactId>webapp</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
  <dependencies>
    <dependency>
        <groupId>org.test</groupId>
        <artifactId>library</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </dependency>
  </dependencies>
</project>

現在,當我以“運行方式...”將戰爭部署到Web服務器(jboss)時,將生成war文件,並將該庫的jar嵌入WEB-INF / lib下。 因此,一切似乎都很好,除非不是:生成的jar不是由maven生成的,並且它錯過了在maven-jar-plugin上設置的任何配置(在這種情況下, Dependencies: just a test線)。

可能很明顯,但是如果我在庫項目上使用“作為Maven構建運行”,則jar:jarpackage目標都將使用預期的清單來構建jar。

我已經設法使用Maven配置器對此進行了歸檔。

  1. 將您提供的插件配置添加到pom.xml文件中
  2. 將依賴項添加到webapp項目
  3. 右鍵單擊maven webapp項目,然后轉到Maven>更新項目
  4. 選擇webapp和庫以進行良好測量,然后單擊“確定”。
  5. 我正在使用Tomcat,但是當我清理服務器並檢查webapp目錄時,jar文件包含清單

如果這不起作用,請檢查Eclipse生命周期映射中是否忽略了jar:jar目標。

  1. 右鍵單擊庫項目,然后單擊屬性
  2. 轉到:Maven>生命周期映射
  3. 檢查jar:jar插件的執行情況,對我來說它實際上是說Mapping:已忽略,Source:工作區,所以我不得不更新eclipse配置

要將jar:jar從工作區的忽略列表中刪除:

  1. 工作區首選項> Maven>生命周期映射
  2. 開放式工作空間生命周期映射元數據
  3. 編輯xml以刪除maven-jar-plugin插件執行
  4. 單擊“重新加載工作空間生命周期映射”或重新啟動Eclipse。 我不得不重新啟動Eclipse,因為它沒有生效。
  5. 再次對受影響的項目執行Maven>更新項目,以確保

映射可能會在pom.xml文件中被忽略,在這種情況下,您會在plugin.management下的庫pom文件中找到忽略插件執行的部分。

暫無
暫無

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

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