You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Yuri Schimke (JIRA)" <ji...@codehaus.org> on 2008/03/19 16:43:47 UTC
[jira] Created: (MECLIPSE-407) EclipsePlugin parameter to skip
dependency resolution
EclipsePlugin parameter to skip dependency resolution
-----------------------------------------------------
Key: MECLIPSE-407
URL: http://jira.codehaus.org/browse/MECLIPSE-407
Project: Maven 2.x Eclipse Plugin
Issue Type: Improvement
Components: PDE support
Affects Versions: 2.5
Reporter: Yuri Schimke
Because all our projects are PDE projects, we don't need want all the JARs copied locally and added to the classpath.
Because there is no option to stop them being added to .classpath apart from adding a lot of excludes, we have a subclass of EclipsePlugin that does a similar tihng to the M2EclipsePlugin
protected void setupExtras() throws MojoExecutionException {
if (isPdeProject()) {
// disable normal dependency resolution
setResolveDependencies(false);
}
}
However, it we could set a flag to stop dependency resolution, we would not need to maintain our own plugin. i.e. add the parameter javadoc.
/**
* Flag for mojo implementations to control whether normal maven dependencies should be resolved. Default value is
* true.
*
* @parameter expression="${eclipse.resolveDependencies}" default-value="true"
*/
private boolean resolveDependencies = true;
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] Commented: (MECLIPSE-407) EclipsePlugin parameter to skip
dependency resolution
Posted by "Yuri Schimke (JIRA)" <ji...@codehaus.org>.
[ http://jira.codehaus.org/browse/MECLIPSE-407?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=132572#action_132572 ]
Yuri Schimke commented on MECLIPSE-407:
---------------------------------------
Because we want PDE dependencies in the Eclipse, we have the above change. However we also want our products to deploy with either
- built JAR files i.e. valid OSGi bundles built by maven
- With project open in Eclipse workspace so we can make code changes etc
To get the second to work, you also need a build.properties file, so we have ended up with the following
public class BaclipsePlugin extends EclipsePlugin {
protected void setupExtras() throws MojoExecutionException {
if (isPdeProject()) {
// disable normal dependency resolution
setResolveDependencies(false);
}
}
protected void writeOsgiManifest(EclipseWriterConfig config) throws MojoExecutionException {
}
protected void writeBuildProperties(EclipseWriterConfig config) throws MojoExecutionException {
File projectRelativeFile = new File(getEclipseProjectDir(), "build.properties");
StringBuilder content = new StringBuilder();
String sourceDirectories = getSourceDirectoriesString(config);
content.append("source.. = " + sourceDirectories + "\n");
String outputDirectories = getOutputDirectoriesString(config);
content.append("output.. = " + outputDirectories + "\n");
String binIncludes = getIncludesString(config);
content.append("bin.includes = " + binIncludes + "\n");
try {
FileUtils.fileWrite(projectRelativeFile.getAbsolutePath(), content.toString());
} catch (IOException e) {
throw new MojoExecutionException(Messages.getString("EclipsePlugin.cantwritetofile", //$NON-NLS-1$
projectRelativeFile.getAbsolutePath()));
}
}
private String getIncludesString(EclipseWriterConfig config) {
return "META-INF/";
}
private String getSourceDirectoriesString(EclipseWriterConfig config) {
StringBuilder string = new StringBuilder();
EclipseSourceDir[] sourceDirs = config.getSourceDirs();
for (int i = 0; i < sourceDirs.length; i++) {
if (i > 0) {
string.append(",");
}
string.append(sourceDirs[i].getPath());
}
return string.toString();
}
private String getOutputDirectoriesString(EclipseWriterConfig config) throws MojoExecutionException {
Set paths = new HashSet();
StringBuilder string = new StringBuilder();
EclipseSourceDir[] sourceDirs = config.getSourceDirs();
for (int i = 0; i < sourceDirs.length; i++) {
String outputDir = sourceDirs[i].getOutput();
if (outputDir == null) {
outputDir =
IdeUtils.toRelativeAndFixSeparator( config.getProjectBaseDir(), config.getBuildOutputDirectory(), false );
}
if (paths.add(outputDir)) {
if (string.length() > 0) {
string.append(",");
}
string.append(outputDir);
}
}
return string.toString();
}
}
> EclipsePlugin parameter to skip dependency resolution
> -----------------------------------------------------
>
> Key: MECLIPSE-407
> URL: http://jira.codehaus.org/browse/MECLIPSE-407
> Project: Maven 2.x Eclipse Plugin
> Issue Type: Improvement
> Components: PDE support
> Affects Versions: 2.5
> Reporter: Yuri Schimke
>
> Because all our projects are PDE projects, we don't need want all the JARs copied locally and added to the classpath.
> Because there is no option to stop them being added to .classpath apart from adding a lot of excludes, we have a subclass of EclipsePlugin that does a similar tihng to the M2EclipsePlugin
> protected void setupExtras() throws MojoExecutionException {
> if (isPdeProject()) {
> // disable normal dependency resolution
> setResolveDependencies(false);
> }
> }
> However, it we could set a flag to stop dependency resolution, we would not need to maintain our own plugin. i.e. add the parameter javadoc.
> /**
> * Flag for mojo implementations to control whether normal maven dependencies should be resolved. Default value is
> * true.
> *
> * @parameter expression="${eclipse.resolveDependencies}" default-value="true"
> */
> private boolean resolveDependencies = true;
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] Commented: (MECLIPSE-407) EclipsePlugin parameter to skip
dependency resolution
Posted by "Yuri Schimke (JIRA)" <ji...@codehaus.org>.
[ http://jira.codehaus.org/browse/MECLIPSE-407?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_127905 ]
Yuri Schimke commented on MECLIPSE-407:
---------------------------------------
If there are other ways of achieving this then please let us know. BTW we also manually edit the Manifest so we currently use -Dmanifest=NONE so it doesn't try to overwrite it.
> EclipsePlugin parameter to skip dependency resolution
> -----------------------------------------------------
>
> Key: MECLIPSE-407
> URL: http://jira.codehaus.org/browse/MECLIPSE-407
> Project: Maven 2.x Eclipse Plugin
> Issue Type: Improvement
> Components: PDE support
> Affects Versions: 2.5
> Reporter: Yuri Schimke
>
> Because all our projects are PDE projects, we don't need want all the JARs copied locally and added to the classpath.
> Because there is no option to stop them being added to .classpath apart from adding a lot of excludes, we have a subclass of EclipsePlugin that does a similar tihng to the M2EclipsePlugin
> protected void setupExtras() throws MojoExecutionException {
> if (isPdeProject()) {
> // disable normal dependency resolution
> setResolveDependencies(false);
> }
> }
> However, it we could set a flag to stop dependency resolution, we would not need to maintain our own plugin. i.e. add the parameter javadoc.
> /**
> * Flag for mojo implementations to control whether normal maven dependencies should be resolved. Default value is
> * true.
> *
> * @parameter expression="${eclipse.resolveDependencies}" default-value="true"
> */
> private boolean resolveDependencies = true;
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira