maven-dependency-plugin target / classes - 访问被拒绝

时间:2012-01-11 16:59:19

标签: maven m2eclipse maven-dependency-plugin

我有一个包含父项目A的多模块项目,以及两个子项目B和C.项目B依赖于项目C.我使用maven-dependency-plugin将B的依赖项复制到lib /目标/目录中的目录。所以,我可以使用maven-assembly-plugin在最终的zip中包含这个lib /目录。问题是当我在项目B上运行mvn clean包时出现以下错误:

  

at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)       ......还有19个

     

引起:java.io.FileNotFoundException:D:\ path-to-projects-directory \ C \ target \ classes(访问被拒绝)

     

at java.io.FileInputStream.open(Native Method)

     

在java.io.FileInputStream。(FileInputStream.java:120)

     

at org.codehaus.plexus.util.io.FileInputStreamFacade.getInputStream(FileInputStreamFacade.java:36)

     

at org.codehaus.plexus.util.FileUtils.copyStreamToFile(FileUtils.java:1141)

     

at org.codehaus.plexus.util.FileUtils.copyFile(FileUtils.java:1048)

     

at org.apache.maven.plugin.dependency.AbstractDependencyMojo.copyFile(AbstractDependencyMojo.java:192)       ......还有23个

有人有想法吗?

我已经在网上做了一些研究,我发现存在这样的问题(参见http://jira.codehaus.org/browse/MWAR-192,这是针对战争的,但我与JAR有类似的问题)。似乎无法访问项目C的target / classes目录来创建C.jar(C.jar必须包含在项目B的lib /目录中)。

由于

4 个答案:

答案 0 :(得分:3)

我刚刚使用配置

遇到了这个问题
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <version>2.3.2</version>
    <configuration>
        <archive>
            <index>true</index>
            <manifest>
                <addClasspath>true</addClasspath>
            </manifest>
            <manifestEntries>
                <mode>development</mode>
                <url>${project.url}</url>
                <key>value</key>
            </manifestEntries>
        </archive>
    </configuration>
    ...
</plugin>

http://maven.apache.org/plugins/maven-jar-plugin/examples/manifest-customization.html的清单自定义示例提供。我将其诊断为<index>true</index>,因为当该部分被注释掉时问题消失了,并且验证了这是maven jar插件的版本2.3.2,2.3.1,2.3,2.2,2.1的问题。

根据maven插件jira - 见https://jira.codehaus.org/browse/MJAR-69 - 它刚刚被修复

答案 1 :(得分:0)

我刚刚遇到过这个问题,readOnly元素显然会导致访问被拒绝的消息。无论如何,readOnly元素已被弃用,但我碰巧在较旧的示例中使用它。

答案 2 :(得分:0)

我有同样的问题。我已经通过以下方式解决了这个问题:

右键单击traget文件夹>“属性”>取消选中“只读”选项,并尝试解决问题。

enter image description here

答案 3 :(得分:0)

我尝试了几种方法来解决此问题:

  • 更改文件夹的权限
  • 移除只读属性
  • 从资源管理器中删除文件夹
  • 从提升的命令提示符中删除文件夹

没有成功。

然后我重新启动了机器,target 文件夹神奇地消失了。