In my organization there are multiple projects (usually services) that are not necessarily uploaded to our maven Artifactory, while there are projects (usually organization libraries) that are uploaded to Artifactory.
The service project may depend on the library project and pull their artifacts from our maven repository.
I'm interested to know if there is a way to list which projects in my organization pull a given dependency on Artifactory, in other words - which projects use a certain library in my organization.
I am building a maven plugin which I would like to attach to a project which uses the artifact of another project which I'm building.
For instance:
Project A --> Project B
I could run Project A with two different branches of Project B so I would like to checkout and generate the artifact on demand.
Is it possible to access the maven dependencies of the project and remove or add one or trigger another project build?
I have a project A of type war (or ejb) which has a dependency on some other war project B of mine.
Is it possible to build project B before including it as a dependency to the project A with mvn package?
Note: I wouldn't like to change the packaging types of my projects and wouldn't like to change the parent-child relationship between my projects.
I have an application A that depends on an internal shared library B. A and B each has their own repositories.
I'm using TeamCity 10 to build these two projects. Two ways I considering doing this:
Build B and publish the dlls as artifacts. Build A with an artifact dependency on B.
Build B and publish as a nuget package. Build A with a nuget dependency on B.
My questions are:
Which approach is better?
Artifact dependencies seem like the simplest approach and can get the job done, but if we go the nuget route, we can generalize dependency resolution and decouple it from the buildserver to do it. Another advantage I can see with nugets is that when developers checkout solution for B, any dependencies can be resolved through nuget. While for artifact dependencies, some type of pre-build script on the developer's local machine is needed to retrieve/copy dll artifacts, mimicking what TeamCity does with artifact dependencies on the buildserver (is there a better approach for this?).
If we implement nuget dependencies, why would we ever need artifact dependencies at all?
Thanks in advance for any feedback offered.
The best approach for this is based on your projects developing progress.
If the project A and Project B are still in developing, I suggest you use artifact dependencies. Since you will change the projects very often when developing them, in TeamCity you just need to add artifact dependencies to the build configurations. No matter how you change the projects code, the build configurations need not to change.
If the projects development has finished, the NuGet dependencies is a good choice. Because if you are using NuGet dependencies when developing the projects, when any code changed during developing, you need to re-pack the packages and reinstall it into your project.
I would prefer to use Nuget just as the advantages you have already mentioned in your question. It's more convenient and can save more time when you want add the shared library to your project/solution to build locally.
When I export my domain project from Anypoint Studio using the "Anypoint Studio Project to Mule Deployable Archive" option, there is a checkbox saying Export project associated with this domain
This will generate a zip file contain the domain project as well an apps folder containing deployable versions of the associated apps. I can then take this file and deploy it to the /domain folder on the server to deploy my entire Mule solution. Is there any way to generate the same thing from Maven?
When I run mvn clean package against the domain project it generates a zip file in the /target folder but this is missing the apps inside.
How can I generate the full archive using Maven?
(I am new to Maven so may just be missing a different goal I should be specifying or maybe there is a plugin I should use?)
here you will find documentation about how to create a Mule domain using Maven. You can also check this GitHub project which aggregates several Maven plugins and archetypes for Mule, in particular, pay attention to the Mule Domain archetype.
Regards.