2016-08-12 216 views
1

我使用maven-assembly-plugin创建tar.gz存档。现在我需要在档案中包含文件。这些只是一些普通的旧文本文件,在运行时是依赖项,而不是在编译或(单元)测试时间。Maven:添加非JAR依赖关系

我想过要添加一个Maven依赖关系,但这些文件并不存储在Maven仓库中,而是存储在一个简单的删除文件夹中。更糟糕的是,该文件夹受密码保护。我可以在预先构建步骤中将这些受密码保护的文件下载到本地文件夹中。但是,在装配中使用这些文件仍然存在问题。另外,这是我想避免的额外工作。

有没有办法做到这一点?

+0

如果你想要做的是从远程文件夹下载文件并压缩它们,为什么你想用maven做到这一点? –

+0

@AssenKolov我想将外部文件包含在与Maven构建,测试和打包的档案中。 – Christoph

+0

你可以将你的文件作为一个程序集从maven工作中发布出来,并有一个构建最终压缩文件的生成后步骤脚本。 –

回答

0

如果您可以下载这些文件,解决方法密码。也许这会有所帮助。
创建模组件项目中,你把这样的事情:

<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3 http://maven.apache.org/xsd/assembly-1.1.3.xsd"> 
<id>${artifact.version}</id> 
<formats> 
    <format>zip</format> 
</formats> 
<includeBaseDirectory>false</includeBaseDirectory> 
<dependencySets> 
    <dependencySet> 
     <useProjectArtifact>false</useProjectArtifact> 
     <useTransitiveDependencies>true</useTransitiveDependencies> 
     <unpack>false</unpack> 
     <excludes> 
      <exclude>${project.groupId}:*:*</exclude> 
     </excludes> 
     <outputFileNameMapping>project${timestamp}_code-${artifact.name}.${artifact.extension}</outputFileNameMapping> 
    </dependencySet> 
</dependencySets> 
<fileSets> 
    <fileSet> 
     <includes> 
      <include>readme.txt</include> <!-- here's that plain file --> 
     </includes> 
    </fileSet> 
</fileSets> 

您可以在文件集的那些文件。 http://maven.apache.org/plugins/maven-assembly-plugin/examples/single/filtering-some-distribution-files.html欲了解更多信息