How to build a repository which is depending on another repository
Asked by Raymond Lee:

Hi all,

I have very little experience in using bamboo and really hope to get some hints on the question I am facing.

I have one system which splits into two respositories in stash, let's say project A and B and B requires the jar/classes built from project A to complete it build process. In project B pom.xml, it states the dependency

\<dependency\>  
\<groupId\>com.project.A\</groupId\>  
\<artifactId\>ProjectA\</artifactId\>  
\<version\>1.0.0-SNAPSHOT\</version\>

.....

and when running maven on project A, we need to run "clean install" instead of "clean package" such that project B can access the project A binary.

I found that it makes our build not easy to manage and I think there should be other way that Project A produces jar/classes binaryin one respostory and project B can get this binary into its build process. But I still cannot find out a way in bamboo how to achieve this purpose.

Can some of you share your experience in such build process scenario ?

I look at some artices in web and still cannot get it work in bamboo.

Do I need to remove the dependency in project B and direct reference to the jar in build process ?

If any of you can show me the way, I will be very appreciated your help.

Please kindly help

Thanks fo ryour kind attention,

Ray


Answers:
author: Gabriel Ribeiro
body: Hi Ray,

I'm not sure if I understood it correctly but, have you tried to make the jars produced by the **Proj A** available as artifacts and then download them during the **Proj B** build process?

Another thing that you could try is to create a local maven repository and add the jar files produced by **Proj A** there using a solution described in the following StackOverflow thread:

* [How to add local jar files to a Maven project](https://stackoverflow.com/questions/4955635/how-to-add-local-jar-files-to-a-maven-project)

Does that make any sense to your use case?

<br />

Thank you.

best,  
Gabriel Ribeiro

comments: author: Raymond Lee
body: Hi Gabriel,

Really thanks for your reply, your understanding is correct, actually, I know how to share one project artifacts to another project, but within the same repository. I am not really sure if this principle can be applied to two separate repository artifact sharing in build process.

I have also explored your suggestion to use a local maven repository, is it an approach that create a local (or temporary) repository with maven pom instructions, then one project "clean install" its package into the local/temporary repository and another project tries to reference the local/temporary repository installed artifacts in build process.

Really appreciate you can help me on this topic

Many thanks,

Ray


author: Raymond Lee
body: Hi Gabriel,

For sharing artifact from another repository, how the pom.xml be referening the artifact at runtime ?

Would you share me your idea ?

Many thanks,

Ray


author: Gabriel Ribeiro
body: Hi Rey,

I think [this](https://stackoverflow.com/a/36602256) solution would be the best approach but, you can reference your jar file directly like this:

    <dependency>    <groupId>com.sample</groupId>    <artifactId>sample</artifactId>    <version>1.0</version>    <scope>system</scope>    <systemPath>${project.basedir}/src/main/resources/yourJar.jar</systemPath></dependency>

thanks


Tags: repository