You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by "David Jencks (JIRA)" <se...@james.apache.org> on 2008/06/13 01:42:45 UTC
[jira] Created: (JAMES-840) Alternate approach to local private
repo for mvn build
Alternate approach to local private repo for mvn build
------------------------------------------------------
Key: JAMES-840
URL: https://issues.apache.org/jira/browse/JAMES-840
Project: James
Issue Type: Bug
Components: Build System
Affects Versions: Trunk
Reporter: David Jencks
The mvn build did not work for me, perhaps because of some maven proxy settings. However I think the current use of local repositories is weird and suggest an alternate approach, see attachment.
Basically the idea is to turn stage into a project that installs all required jars from the stage private local repo to the local maven repo.
I would suggest having two sets of dependencies: in the regular dependencies include only those jars that are not available elsewhere, and in a profile include also those jars that are available from maven central. This will clarify which jars you are using from non-publically-available sources or builds.
In addition, the spring integration has a separate stage. I would recommend moving the contents to the main stage repo with (I think)
svn mv spring-deployment/stage/ stage
I don't know if this would break the ant build.
At this point the root pom is missing the javax.jcr:jcr:1.0:jar and avalon-phoenix:avalon-phoenix-client:4.2-SNAPSHOT:jar dependencies in the dependency management section
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[jira] Commented: (JAMES-840) Alternate approach to local private
repo for mvn build
Posted by "David Jencks (JIRA)" <se...@james.apache.org>.
[ https://issues.apache.org/jira/browse/JAMES-840?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12604772#action_12604772 ]
David Jencks commented on JAMES-840:
------------------------------------
Bernd.... I am well aware that many james committers dislike maven almost as much as I dislike ant, but the maven build does work. I am suggesting something that I think is a slight simplification of it.
Stefano... I apologize for confusing the issue. After some struggles I thought that my proxy/mirror settings were causing problems so I turned them off, but by that time I had most of this suggestion implemented. I think but haven't checked that the build would work fine as is if I started with my proxy/mirror settings turned off.
I guess there are 3 parts here:
1. merging the spring-deployment stage repo into the main stage repo. I would think you would want to do this anyway so all the dependencies are in one place.
2. turning the stage dir into a maven project whose only function is to install the dependencies in the stage repo into the local maven repo. I think this makes the build clearer. Another effect is that you only have to turn off your proxy/mirror settings while building the stage module, the rest of the build works with them on.
3. possibly separating the "available from maven central repo" dependencies into a separate profile in the stage pom. I think this would help in tracking which dependencies are easiliy available and which you have built yourself or dug out of some undocumented location.
This is not a giant improvement in any sense, but to me it seems slightly clearer what is going on with the repos and it might be slightly more maintainable. I certainly won't mind if you keep the build the way it is now, although I do think adding the 2 dependencies to the root dependency management section would be a good idea. (there might be more that I didn't see).
> Alternate approach to local private repo for mvn build
> ------------------------------------------------------
>
> Key: JAMES-840
> URL: https://issues.apache.org/jira/browse/JAMES-840
> Project: James
> Issue Type: Bug
> Components: Build System
> Affects Versions: Trunk
> Reporter: David Jencks
> Attachments: JAMES-840.patch
>
>
> The mvn build did not work for me, perhaps because of some maven proxy settings. However I think the current use of local repositories is weird and suggest an alternate approach, see attachment.
> Basically the idea is to turn stage into a project that installs all required jars from the stage private local repo to the local maven repo.
> I would suggest having two sets of dependencies: in the regular dependencies include only those jars that are not available elsewhere, and in a profile include also those jars that are available from maven central. This will clarify which jars you are using from non-publically-available sources or builds.
> In addition, the spring integration has a separate stage. I would recommend moving the contents to the main stage repo with (I think)
> svn mv spring-deployment/stage/ stage
> I don't know if this would break the ant build.
> At this point the root pom is missing the javax.jcr:jcr:1.0:jar and avalon-phoenix:avalon-phoenix-client:4.2-SNAPSHOT:jar dependencies in the dependency management section
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[jira] Resolved: (JAMES-840) Alternate approach to local private
repo for mvn build
Posted by "Stefano Bagnara (JIRA)" <se...@james.apache.org>.
[ https://issues.apache.org/jira/browse/JAMES-840?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Stefano Bagnara resolved JAMES-840.
-----------------------------------
Resolution: Fixed
Fix Version/s: 3.0
Assignee: Stefano Bagnara
Applied.
> Alternate approach to local private repo for mvn build
> ------------------------------------------------------
>
> Key: JAMES-840
> URL: https://issues.apache.org/jira/browse/JAMES-840
> Project: James
> Issue Type: Bug
> Components: Build System
> Affects Versions: Trunk
> Reporter: David Jencks
> Assignee: Stefano Bagnara
> Fix For: 3.0
>
> Attachments: JAMES-840-2.patch, JAMES-840.patch
>
>
> The mvn build did not work for me, perhaps because of some maven proxy settings. However I think the current use of local repositories is weird and suggest an alternate approach, see attachment.
> Basically the idea is to turn stage into a project that installs all required jars from the stage private local repo to the local maven repo.
> I would suggest having two sets of dependencies: in the regular dependencies include only those jars that are not available elsewhere, and in a profile include also those jars that are available from maven central. This will clarify which jars you are using from non-publically-available sources or builds.
> In addition, the spring integration has a separate stage. I would recommend moving the contents to the main stage repo with (I think)
> svn mv spring-deployment/stage/ stage
> I don't know if this would break the ant build.
> At this point the root pom is missing the javax.jcr:jcr:1.0:jar and avalon-phoenix:avalon-phoenix-client:4.2-SNAPSHOT:jar dependencies in the dependency management section
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[jira] Updated: (JAMES-840) Alternate approach to local private
repo for mvn build
Posted by "David Jencks (JIRA)" <se...@james.apache.org>.
[ https://issues.apache.org/jira/browse/JAMES-840?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
David Jencks updated JAMES-840:
-------------------------------
Attachment: JAMES-840-2.patch
There are really two ideas behind this issue:
1. Move _all_ the jars needed for the build into a single stage directory/repo
2. Use a single maven project to get all these jars into the local maven repo rather than using a special repo configuration for the entire build.
and
2.1. separate the jars in stage into several categories:
- available from maven central repo with appropriate signatures
- not available from maven central or maven central does not have appropriate signatures.
I've found it extremely confusing that the jars required for building and running this project are spread over so many locations:
stage
spring-deployment/stage
spring-deployment/lib/phoenix-runtime
phoenix-deployment/phoenix-bin/lib
The last two locations appear to have many of the same files in them.
The updated patch includes configuration for some files needed to run JAMES in geronimo from spring-deployment/lib/phoenix-runtime
Whether or not the idea (2) for alternate use of a private maven repo is adopted, getting all the jars in one place without duplicates (1) would really improve the comprehensibility of even the ant build.
> Alternate approach to local private repo for mvn build
> ------------------------------------------------------
>
> Key: JAMES-840
> URL: https://issues.apache.org/jira/browse/JAMES-840
> Project: James
> Issue Type: Bug
> Components: Build System
> Affects Versions: Trunk
> Reporter: David Jencks
> Attachments: JAMES-840-2.patch, JAMES-840.patch
>
>
> The mvn build did not work for me, perhaps because of some maven proxy settings. However I think the current use of local repositories is weird and suggest an alternate approach, see attachment.
> Basically the idea is to turn stage into a project that installs all required jars from the stage private local repo to the local maven repo.
> I would suggest having two sets of dependencies: in the regular dependencies include only those jars that are not available elsewhere, and in a profile include also those jars that are available from maven central. This will clarify which jars you are using from non-publically-available sources or builds.
> In addition, the spring integration has a separate stage. I would recommend moving the contents to the main stage repo with (I think)
> svn mv spring-deployment/stage/ stage
> I don't know if this would break the ant build.
> At this point the root pom is missing the javax.jcr:jcr:1.0:jar and avalon-phoenix:avalon-phoenix-client:4.2-SNAPSHOT:jar dependencies in the dependency management section
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[jira] Commented: (JAMES-840) Alternate approach to local private
repo for mvn build
Posted by "Stefano Bagnara (JIRA)" <se...@james.apache.org>.
[ https://issues.apache.org/jira/browse/JAMES-840?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12604765#action_12604765 ]
Stefano Bagnara commented on JAMES-840:
---------------------------------------
David, thanks for the suggestion, very interesting! I'll take a better look at it to understand pros/cons.
>From a fast overview it seems that you moved all the "local stage repository" use to the "stage" module so other modules do not need this anymore.
I don't understand why this solution fixes your use and your maven proxy settings: do you also add profiles to remove the stage module from your build or the simple fact that the "local stage repository " is now only referred from a single module and there are no more "../" in every modules fixes it?
> Alternate approach to local private repo for mvn build
> ------------------------------------------------------
>
> Key: JAMES-840
> URL: https://issues.apache.org/jira/browse/JAMES-840
> Project: James
> Issue Type: Bug
> Components: Build System
> Affects Versions: Trunk
> Reporter: David Jencks
> Attachments: JAMES-840.patch
>
>
> The mvn build did not work for me, perhaps because of some maven proxy settings. However I think the current use of local repositories is weird and suggest an alternate approach, see attachment.
> Basically the idea is to turn stage into a project that installs all required jars from the stage private local repo to the local maven repo.
> I would suggest having two sets of dependencies: in the regular dependencies include only those jars that are not available elsewhere, and in a profile include also those jars that are available from maven central. This will clarify which jars you are using from non-publically-available sources or builds.
> In addition, the spring integration has a separate stage. I would recommend moving the contents to the main stage repo with (I think)
> svn mv spring-deployment/stage/ stage
> I don't know if this would break the ant build.
> At this point the root pom is missing the javax.jcr:jcr:1.0:jar and avalon-phoenix:avalon-phoenix-client:4.2-SNAPSHOT:jar dependencies in the dependency management section
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[jira] Commented: (JAMES-840) Alternate approach to local private
repo for mvn build
Posted by "Bernd Fondermann (JIRA)" <se...@james.apache.org>.
[ https://issues.apache.org/jira/browse/JAMES-840?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12604750#action_12604750 ]
Bernd Fondermann commented on JAMES-840:
----------------------------------------
Our official and foremost build tool is ant. I'd suggest you invoke ant on TRUNK root.
Maintaining two build tools is error-prone and we cannot assure that maven works for everyone all the time.
Sorry for causing this inconvenience.
> Alternate approach to local private repo for mvn build
> ------------------------------------------------------
>
> Key: JAMES-840
> URL: https://issues.apache.org/jira/browse/JAMES-840
> Project: James
> Issue Type: Bug
> Components: Build System
> Affects Versions: Trunk
> Reporter: David Jencks
> Attachments: JAMES-840.patch
>
>
> The mvn build did not work for me, perhaps because of some maven proxy settings. However I think the current use of local repositories is weird and suggest an alternate approach, see attachment.
> Basically the idea is to turn stage into a project that installs all required jars from the stage private local repo to the local maven repo.
> I would suggest having two sets of dependencies: in the regular dependencies include only those jars that are not available elsewhere, and in a profile include also those jars that are available from maven central. This will clarify which jars you are using from non-publically-available sources or builds.
> In addition, the spring integration has a separate stage. I would recommend moving the contents to the main stage repo with (I think)
> svn mv spring-deployment/stage/ stage
> I don't know if this would break the ant build.
> At this point the root pom is missing the javax.jcr:jcr:1.0:jar and avalon-phoenix:avalon-phoenix-client:4.2-SNAPSHOT:jar dependencies in the dependency management section
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[jira] Updated: (JAMES-840) Alternate approach to local private
repo for mvn build
Posted by "David Jencks (JIRA)" <se...@james.apache.org>.
[ https://issues.apache.org/jira/browse/JAMES-840?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
David Jencks updated JAMES-840:
-------------------------------
Attachment: JAMES-840.patch
Change how private artifacts get deployed to the local maven repo. Include a dependencies missing from the maven build.
> Alternate approach to local private repo for mvn build
> ------------------------------------------------------
>
> Key: JAMES-840
> URL: https://issues.apache.org/jira/browse/JAMES-840
> Project: James
> Issue Type: Bug
> Components: Build System
> Affects Versions: Trunk
> Reporter: David Jencks
> Attachments: JAMES-840.patch
>
>
> The mvn build did not work for me, perhaps because of some maven proxy settings. However I think the current use of local repositories is weird and suggest an alternate approach, see attachment.
> Basically the idea is to turn stage into a project that installs all required jars from the stage private local repo to the local maven repo.
> I would suggest having two sets of dependencies: in the regular dependencies include only those jars that are not available elsewhere, and in a profile include also those jars that are available from maven central. This will clarify which jars you are using from non-publically-available sources or builds.
> In addition, the spring integration has a separate stage. I would recommend moving the contents to the main stage repo with (I think)
> svn mv spring-deployment/stage/ stage
> I don't know if this would break the ant build.
> At this point the root pom is missing the javax.jcr:jcr:1.0:jar and avalon-phoenix:avalon-phoenix-client:4.2-SNAPSHOT:jar dependencies in the dependency management section
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[jira] Commented: (JAMES-840) Alternate approach to local private
repo for mvn build
Posted by "Stefano Bagnara (JIRA)" <se...@james.apache.org>.
[ https://issues.apache.org/jira/browse/JAMES-840?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12604925#action_12604925 ]
Stefano Bagnara commented on JAMES-840:
---------------------------------------
Thank you David. I'm assigning this issue to me because I'm the "mantainer" of the maven stuff for our website needs (and my CI needs), but I don't know how soon I'll find the time to give this a try!
Currently I see this pros/cons:
PRO: remove the "double" local stage repository reference (stage + ../stage) hack.
CON: add a "stage" module to be mantained with the full list of dependencies (duplicating the effort of the dependencyManagement in the parent pom).
> Alternate approach to local private repo for mvn build
> ------------------------------------------------------
>
> Key: JAMES-840
> URL: https://issues.apache.org/jira/browse/JAMES-840
> Project: James
> Issue Type: Bug
> Components: Build System
> Affects Versions: Trunk
> Reporter: David Jencks
> Assignee: Stefano Bagnara
> Attachments: JAMES-840.patch
>
>
> The mvn build did not work for me, perhaps because of some maven proxy settings. However I think the current use of local repositories is weird and suggest an alternate approach, see attachment.
> Basically the idea is to turn stage into a project that installs all required jars from the stage private local repo to the local maven repo.
> I would suggest having two sets of dependencies: in the regular dependencies include only those jars that are not available elsewhere, and in a profile include also those jars that are available from maven central. This will clarify which jars you are using from non-publically-available sources or builds.
> In addition, the spring integration has a separate stage. I would recommend moving the contents to the main stage repo with (I think)
> svn mv spring-deployment/stage/ stage
> I don't know if this would break the ant build.
> At this point the root pom is missing the javax.jcr:jcr:1.0:jar and avalon-phoenix:avalon-phoenix-client:4.2-SNAPSHOT:jar dependencies in the dependency management section
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[jira] Assigned: (JAMES-840) Alternate approach to local private
repo for mvn build
Posted by "Stefano Bagnara (JIRA)" <se...@james.apache.org>.
[ https://issues.apache.org/jira/browse/JAMES-840?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Stefano Bagnara reassigned JAMES-840:
-------------------------------------
Assignee: (was: Stefano Bagnara)
http://markmail.org/message/qq5vhwwn2k7vzkyc
> Alternate approach to local private repo for mvn build
> ------------------------------------------------------
>
> Key: JAMES-840
> URL: https://issues.apache.org/jira/browse/JAMES-840
> Project: James
> Issue Type: Bug
> Components: Build System
> Affects Versions: Trunk
> Reporter: David Jencks
> Attachments: JAMES-840.patch
>
>
> The mvn build did not work for me, perhaps because of some maven proxy settings. However I think the current use of local repositories is weird and suggest an alternate approach, see attachment.
> Basically the idea is to turn stage into a project that installs all required jars from the stage private local repo to the local maven repo.
> I would suggest having two sets of dependencies: in the regular dependencies include only those jars that are not available elsewhere, and in a profile include also those jars that are available from maven central. This will clarify which jars you are using from non-publically-available sources or builds.
> In addition, the spring integration has a separate stage. I would recommend moving the contents to the main stage repo with (I think)
> svn mv spring-deployment/stage/ stage
> I don't know if this would break the ant build.
> At this point the root pom is missing the javax.jcr:jcr:1.0:jar and avalon-phoenix:avalon-phoenix-client:4.2-SNAPSHOT:jar dependencies in the dependency management section
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[jira] Assigned: (JAMES-840) Alternate approach to local private
repo for mvn build
Posted by "Stefano Bagnara (JIRA)" <se...@james.apache.org>.
[ https://issues.apache.org/jira/browse/JAMES-840?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Stefano Bagnara reassigned JAMES-840:
-------------------------------------
Assignee: Stefano Bagnara
> Alternate approach to local private repo for mvn build
> ------------------------------------------------------
>
> Key: JAMES-840
> URL: https://issues.apache.org/jira/browse/JAMES-840
> Project: James
> Issue Type: Bug
> Components: Build System
> Affects Versions: Trunk
> Reporter: David Jencks
> Assignee: Stefano Bagnara
> Attachments: JAMES-840.patch
>
>
> The mvn build did not work for me, perhaps because of some maven proxy settings. However I think the current use of local repositories is weird and suggest an alternate approach, see attachment.
> Basically the idea is to turn stage into a project that installs all required jars from the stage private local repo to the local maven repo.
> I would suggest having two sets of dependencies: in the regular dependencies include only those jars that are not available elsewhere, and in a profile include also those jars that are available from maven central. This will clarify which jars you are using from non-publically-available sources or builds.
> In addition, the spring integration has a separate stage. I would recommend moving the contents to the main stage repo with (I think)
> svn mv spring-deployment/stage/ stage
> I don't know if this would break the ant build.
> At this point the root pom is missing the javax.jcr:jcr:1.0:jar and avalon-phoenix:avalon-phoenix-client:4.2-SNAPSHOT:jar dependencies in the dependency management section
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[jira] Commented: (JAMES-840) Alternate approach to local private
repo for mvn build
Posted by "Stefano Bagnara (JIRA)" <se...@james.apache.org>.
[ https://issues.apache.org/jira/browse/JAMES-840?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12605226#action_12605226 ]
Stefano Bagnara commented on JAMES-840:
---------------------------------------
#1 The real dependencies are already explained in each module pom file, so there is no need to have separate stage folder for each module, but, maybe this does not apply to the phoenix-deployment/phoenix-bin folder: this is simply a local copy of the latest phoenix distribution (with few patches by us). This is a container and is not needed at build time but only at runtime. I don't want to place this stuff in our stage folder / repository, or, at most, I would add the whole folder (phoenix distribution) as an archive (tar.gz) and not each single jar.
- IMHO the avalon-spring bridge/container could be even moved to its own project: I think there are other projects around the world based on avalon that would pay gold for it and they currently can't find it because it is part of a never released trunk folder in our svn.
- About the spring-deployment/lib folder I would like to see it removed: maybe the phoenix-runtime content can be reduced to the minimal set required to run the spring container and moved to the main stage folder.
#2 I described Pro/Cons in a previous comment. ATM +0.5 to do what you propose. This still will be an hack, but this at least isolate the hack into a single module. We have to check that this does not introduce other issues (try to build it with an empty local repository and see it works fine).
#2.1: for sure it worth labelling the jars appropriately but I wouldn't like to split stage into 2 different folders because of this "dynamic" classification: each jar could be published to central if someone take care of doing this.
That said I think geronimo integration is a very good thing to have, so I would be +0.5 to apply this patch as is and then try to fix my concerns as part of separate tasks.
> Alternate approach to local private repo for mvn build
> ------------------------------------------------------
>
> Key: JAMES-840
> URL: https://issues.apache.org/jira/browse/JAMES-840
> Project: James
> Issue Type: Bug
> Components: Build System
> Affects Versions: Trunk
> Reporter: David Jencks
> Attachments: JAMES-840-2.patch, JAMES-840.patch
>
>
> The mvn build did not work for me, perhaps because of some maven proxy settings. However I think the current use of local repositories is weird and suggest an alternate approach, see attachment.
> Basically the idea is to turn stage into a project that installs all required jars from the stage private local repo to the local maven repo.
> I would suggest having two sets of dependencies: in the regular dependencies include only those jars that are not available elsewhere, and in a profile include also those jars that are available from maven central. This will clarify which jars you are using from non-publically-available sources or builds.
> In addition, the spring integration has a separate stage. I would recommend moving the contents to the main stage repo with (I think)
> svn mv spring-deployment/stage/ stage
> I don't know if this would break the ant build.
> At this point the root pom is missing the javax.jcr:jcr:1.0:jar and avalon-phoenix:avalon-phoenix-client:4.2-SNAPSHOT:jar dependencies in the dependency management section
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org