6

我在我的 OSX 10.7.5 上与 Debian 并行运行,并且我已经将一个包含来自 OSX 的 Java 源代码的目录链接到虚拟 Debian 机器(使用 Parallels 工具,它将目录挂载到/media/psf/.

编译工作正常,我唯一的问题是 Maven Assembly 插件:它抱怨:

Failed to retrieve numeric file attributes using: '/bin/sh -c ls -1nlaR

我用谷歌搜索了以下问题:http: //jira.codehaus.org/browse/MASSEMBLY-588

他们建议使用<directory>${baseDir}</directory>in jarlib.xml。通过这个修改,代码可以编译,但是当检查内容时jar tf file.jar,它完全丢失了所有编译的源代码,只添加了 maven 库。

在本地文件系统上正常工作的文件是:

<assembly>
  <id>jar-with-dependencies</id>
  <formats>
    <format>jar</format>
  </formats>
  <includeBaseDirectory>false</includeBaseDirectory>
  <fileSets>
    <fileSet>
      <directory>target/classes</directory>
      <outputDirectory>/</outputDirectory>
    </fileSet>
  </fileSets>
  <dependencySets>
    <dependencySet>
      <outputDirectory>/lib</outputDirectory>
      <unpack>false</unpack>
      <scope>runtime</scope>
    </dependencySet>
  </dependencySets>
</assembly>

有没有办法克服这个问题?

编辑:

Apache Maven 2.2.1 (rdebian-4)
Java version: 1.6.0_26
Java home: /usr/lib/jvm/java-6-sun-1.6.0.26/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux" version: "2.6.32-5-amd64" arch: "amd64" Family: "unix"
4

4 回答 4

2

/bin/sh -c ls -1nlaR {directory_structure/file}
我通过重命名目录结构中具有撇号(')的文件夹来解决它。

之所以会出现此问题,是因为执行命令 /bin/sh -c ls -1nlaR {directory_structure/file} 时 maven 程序集没有转义撇号(')。

于 2016-09-17T22:59:24.497 回答
1

<outputDirectory>/lib</outputDirectory>

您可以像下面的代码一样发出“/”,然后重试。

<outputDirectory>lib</outputDirectory>
于 2015-10-17T14:21:43.707 回答
0

在我们的系统上,这是通过使用最新版本的 maven-assembly-plugin 解决的。

似乎根本问题在于称为 Plexus 的依赖项。

于 2014-07-28T13:27:37.527 回答
0

我在这里发布了对这个相当烦人的问题的回复,以防其他人正在寻找解决方案(在我的情况下,我在从 Ubuntu 12.04 LTS 上的 maven 移动到 Ubuntu 14.04LTS 上的 maven 后第一次遇到了这个问题)。首先是关于我的环境和一些解决方法:

(a) 我的环境是 Ubuntu 14.04LTS/amd64 和最新的 maven,Java 7 (OpenJDK)。(b) 未检索其文件信息的相关文件位于导入到我正在处理的机器中的 NFS 文件系统上(尽管这看起来可能不是问题)。(c) 如果我做了 anls -1nlaR <long pathname on NFS mounted directory>/web.xml然后mvn war:war再做一次,它不会产生任何错误(即BUILD SUCCESSfor mvn war:war)。

解决方法是安装libmaven-shared-utils-java

$ apt-cache search plexus | grep maven
libmaven-shared-utils-java - Replacement for plexus-utils in Maven

您可能已经通过谷歌搜索了解了这个问题,plexus 是罪魁祸首,而 Ubuntu 上的 Maven 似乎决定从 plexus 继续前进。安装上述共享实用程序后,我的 Maven 构建正在按应有的方式进行。

于 2014-07-31T14:56:00.330 回答