git包含来自另一个存储库的已编译的dll

时间:2015-07-20 09:40:20

标签: git dll visual-studio-2013

我在这件事上读了好几个小时没有成功。
这是我的情况:

项目A的输出是一个已编译的dll文件,用于其他项目 多人正在研究项目A
项目A有自己的存储库,让它命名为repoA
我无法在其他项目中包含项目的来源,我只能使用它编译的dll。

项目B是repoB中的Web应用程序 多个人正在研究项目B

所有项目都在同一台机器上(本地服务器)

那么如何将repoA中的dll包含到所有其他项目(repoB ... repoZ)中,并在每次更新repoA时使其保持最新。

我正在使用VS2013和msysGit

1 个答案:

答案 0 :(得分:1)

最好管理二进制依赖项:

  • 在另一个参考文献(different from a source control referential)中:像Nexus这样的艺术参考是最好的
  • 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>