簡體   English   中英

如何將Maven指向Java源代碼依賴?

[英]How Do I Point Maven To Java Source Code Dependencies?

我有一個Apache Archiva Repo,我已經設置它來處理我正在研究的Maven項目的二進制依賴項; 但是,該項目似乎也依賴於本地第三方源代碼(不確定分發許可證)。 有沒有辦法可以將這個源放在Maven可以從需要進行構建時獲取它的某個地方? 通常源代碼將存儲在SCM中,但這似乎不是我只用於編譯的java源文件的正確解決方案(僅在編譯時需要),但不想在我的主“/ src”中目錄。 我很了解Elaborations和最佳實踐,我對Java Development和Maven都很陌生。

可能的解決方案:

  • 說服第三方項目將帶有類文件的JAR部署到Maven Central(如果是開源)
  • 說服第三方項目將帶有類文件的JAR部署到Apache Archiva Repo(如果是封閉源並在同一組織中)
  • 說服第三方項目將帶有類文件的JAR部署到他們自己的Maven Repository Manager並在Apache Archiva實例中注冊該repo(如果是Closed Source而不是在同一個組織中;不確定Apache Archiva是否提供這樣的功能)
  • 自己使用類文件構建JAR並將其部署到Apache Archiva存儲庫。 然后像往常一樣聲明對它的依賴

您可以構建第三方源代碼的Jar文件並將其放在you / lib文件夾下,並在pom.xml文件中提供依賴項。現在,當您構建代碼時,將從特定的jar文件中獲取依賴項。

  <dependency>
         <groupId>--grp id name--</groupId>
         <artifactId>--artifact id--</artifactId>
         <scope>system</scope>
         <version>1.0</version>
         <systemPath>--${basedir}\lib\{name}.jar--</systemPath> (Path of jar)
      </dependency>
   </dependencies>

*實施時刪除“ - - ”。

您可以使用Build Helper插件 ,例如:

<project>
  ...
  <build>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <version>1.7</version>
        <executions>
          <execution>
            <id>add-source</id>
            <phase>generate-sources</phase>
            <goals>
              <goal>add-source</goal>
            </goals>
            <configuration>
              <sources>
                <source>path to where your 3rd party source code is present</source>
                ...
              </sources>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>

暫無
暫無

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

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