On 12/08/2010 5:50 PM, Pepe Perez wrote:
At this first stage I'm using mvn as a repo manager, not as a build tool...
so an operation on a target is not building it, but download it from the remote
repo. Specifically, my targets are tgz files; when running mvn I'd want my
target to be downloaded from the remote repo along with all its dependencies, so
I can extract contents on my machine (i.e, install it on my machine along with
all pre-required pkgs). This is similar to what yum or rpm does, though mvn is
more convenient at this point because it will also build my targets when "we use
it properly"

All you need is an assembly. It will make an archive (tar,tgz,zip) from its dependencies.
http://maven.apache.org/plugins/maven-assembly-plugin/descriptor-refs.html

Set up a repo - I recommend nexus but you will find supporters for other solutions.

Set up your deployment plug-ins in a parent pom that every module references so you don't have to duplicate this in each module.

Set up your repo mirrors in each programmer's settings.xml to point to your repo so you manage all of your dependency sources in one place - the repo configuration.

Set up your project and module POMs to build what you need - jars, wars, tgz, zips, etc. from source code and dependencies.

In a day or two, you are ready to fly.

Maven really does everything that a "normal" software development team needs.
Don't try too hard to find the hard way to do things.
When asking questions, if you are more focused about what you actually want to accomplish rather than asking about technical details, you will get better answers much faster.


Ron

----- Original Message ----
From: Ron Wheeler<[email protected]>
To: [email protected]
Sent: Thu, August 12, 2010 2:38:14 PM
Subject: Re: fetch target from remote repo

   On 12/08/2010 3:45 PM, Pepe Perez wrote:
To show how maven can do out-of-the-box what our custom app does I'm starting
my
prototype by showing how maven can upload and download to/from both a remote
repo and a local repo, though in this first stage I won't build my targets.
So,
I deploy my target and dependencies using deploy:deploy-file. Now I want to
retrieve these pkgs from the remote repo into my local repo; by running "mvn
install" maven will download my dependencies (good, this is what I want) but
will try to build the target. I don't want to build the target, the target is
already in the remote repo and I just want to fetch it into my local repo,
this
is my issue. I agree that you normally don't do this, you want to use maven
for
building, not for repository management. We'll eventually do this, but like I
said, in this first stage I'll just show that for repo management mvn can
easily
replace our complex custom app .


I agree with you approach. Does your IDE support Maven so you don't have
to use mvn commands?
We use Eclipse and never mvn anything. It is all done for us automatically.

If your "target" is already built and in your main repo and you don't
need to use it, why do you want to download it to your PC?

Why not just have it downloaded naturally when someone needs it to build
something (another artifact, a distribution, etc.)? When maven needs
something to build something it will find it and download it only once.

If you can be more specific about what targets you are working with and
how you currently organize your workflow, you might get some better help
from more experience people than me. If you are building something that
runs on a computer, somebody here has built something just like it.

You are in good hands here.

Ron
----- Original Message ----
From: Ron Wheeler<[email protected]>
To: Maven Users List<[email protected]>
Cc: Pepe Perez<[email protected]>
Sent: Thu, August 12, 2010 12:14:33 PM
Subject: Re: fetch target from remote repo

    On 12/08/2010 2:57 PM, Pepe Perez wrote:
Yes, we need both.

Our current app deploys to a distribution repo, I'll get this behavior with
maven using mvn deploy:deploy-file as you also suggest
It also installs (fetch) to the local machine. I'll get this behavior with
maven
using maven-install-plugin:copy (which will fetch my target from the
deployment
repo into a convenient location) + maven-install-plugin:install-file (which
will
store it in the local repo along with the pom)


It is still not clear why the standard Maven behaviour is not exactly
what you need.
Maven will deploy releases and SNAPSHOTS to your main repository
automatically (with access controls, of course) and will automatically
download what a developer needs to build up a local cache on his/her
workstation.

This is all default activity "out of the box" and works very well and
for the most part completely transparently from the developer's point of
view.

You merely set up the Repo (Nexus works well - see their www site and
forums for details), define it as a mirror for all repositories in the
maven settings that each user has (with user names and passwords for
their accounts).
For each application, define the repo's deployment characteristics in
the parent pom which is refered to by each module's pom and your
developers are set to go.

What more do you need?

Ron


----- Original Message ----
From: Anders Hammar<[email protected]>
To: Maven Users List<[email protected]>
Sent: Thu, August 12, 2010 11:44:24 AM
Subject: Re: fetch target from remote repo

Whatever works for you. However, the maven-install-plugin only works on the
local repo. Wouldn't you want to deploy to a real repo such as one in a repo
manager (maven-deploy-plugin)?

/Anders
On Thu, Aug 12, 2010 at 20:26, Pepe Perez<[email protected]>    wrote:

Thanks Anders.

I wanted more something ready-to-use. I finally went for using plugins
maven-install-plugin:copy + maven-install-plugin:install-file. It's not
optimally clean, but will do the trick for now.

Thanks!



----- Original Message ----
From: Anders Hammar<[email protected]>
To: Maven Users List<[email protected]>
Sent: Wed, August 11, 2010 12:01:26 PM
Subject: Re: fetch target from remote repo

Ah, I believe this is a good use case for Aether. Read more here:
http://www.sonatype.com/people/category/aether/

/Anders

On Wed, Aug 11, 2010 at 20:56, Pepe Perez<[email protected]>    wrote:

We have a big complex custom application that does similar things to what
maven
does out-of-the-box, I'm evaluating if we could use maven instead. One of
the
things our custom app does is to manage a distribution repo in which you
can
request a pkg to be fetched into your machine along with its
dependencies.
I was
thinking of using maven to do this, I know managing a repo is not at all
the
main purpose of maven, but for the purpose of building maven does manage
repos
so I wanted to take advantage of this to build the replacement of our app
starting from here.

This works very nicely with dependencies, trying to build a target will
fetch
dependencies from the repo and set them into the local repo, this is
equivalent
to the request we do through our app. But in the case of the target
itself
maven
will try to build it, though what I'd need is it to be fetched from the
repo
too.




----- Original Message ----
From: Anders Hammar<[email protected]>
To: Maven Users List<[email protected]>
Sent: Wed, August 11, 2010 11:42:29 AM
Subject: Re: fetch target from remote repo

I don't quite follow. What is it that you want to achieve? Surely the
main
purpose is not only to have the artifact installed in the local repo, but
you want to do what? Maybe: Use it from some other project? Use it in
some
IDE? Have a look in the jar? Telling us this will help you on the right
track as your current question doesn't make sense (to me at least).

/Anders

On Wed, Aug 11, 2010 at 19:55, Pepe Perez<[email protected]>    wrote:

Hello,

The regular way of operation for maven is to build an artifact and
install
or
deploy it into the repo. Is there any way to specify a target to be
fetched
from
the remote repo into the local repo instead of building it, since I
know
that
it's already deployed?

Another way to look at it, I'm looking for something similar to
mvn install:install-file -Dfile=your-artifact-1.0.jar
[-DpomFile=your-pom.xml] \
[-DgroupId=org.some.group] \
[-DartifactId=your-artifact] \
[-Dversion=1.0]

though
your-artifact-1.0.jar
is already present in the remote repo so maven would go and fetch it
bringing it
to the local repo

Or yet in other words... when building a target maven downloads all
dependencies
from the remote repo. Is there any way to direct maven to do the same
thing
with
the target, fetch vs build?

Thanks!






---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]





---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]





---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]





---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]





---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]





---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]




---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to