我在这件事上读了好几个小时没有成功。
这是我的情况:
项目A的输出是一个已编译的dll文件,用于其他项目
多人正在研究项目A
项目A有自己的存储库,让它命名为repoA
我无法在其他项目中包含项目的来源,我只能使用它编译的dll。
项目B是repoB中的Web应用程序 多个人正在研究项目B
所有项目都在同一台机器上(本地服务器)
那么如何将repoA中的dll包含到所有其他项目(repoB ... repoZ)中,并在每次更新repoA时使其保持最新。
我正在使用VS2013和msysGit
答案 0 :(得分:1)
最好管理二进制依赖项:
pom.xml
文件中(包含在其他项目中)以声明您需要的依赖项(这样,每次在其他项目中开始构建时,都会从Nexus获得所述依赖项)请参阅“The Basics - Components, Repositories and Repository Formats”。
我将这种方法用于各种项目(不仅仅是Java maven项目)
ant -f %BUILD_SCRIPTS_DIRECTORY%\build.xml -lib Build\antlib dependencies
使用build.xml
之类的:
<project name="aname" default="help" xmlns:artifact="antlib:org.apache.maven.artifact.ant">
<taskdef resource="net/sf/antcontrib/antlib.xml"/>
<target name="dependencies" description="resolve dependencies" unless="run.test">
<artifact:pom id="pom" file="pom.xml" />
<artifact:dependencies filesetId="dep.builder" pomRefId="pom"/>
<delete dir="${pom.build.directory}"/>
<unzip dest="${pom.build.directory}" overwrite="true">
<fileset refid="dep.builder"/>
</unzip>
</target>
</project>
并pom.xml
声明依赖关系,如:
<dependencies>
<dependency>
<groupId>com.oracle.www</groupId>
<artifactId>oci</artifactId>
<version>10</version>
<type>zip</type>
<classifier>${targetplatform}</classifier>
</dependency>
<dependency>
<groupId>com.sophis.www</groupId>
<artifactId>stlport</artifactId>
<version>5.1</version>
<type>zip</type>
<classifier>${targetplatform}</classifier>
</dependency>
...
</dependencies>