我正在尝试将ANT构建中的任务转换为Gradle:
<target name="index-assets" depends="copy-assets">
<path id="assets.path">
<!-- contexts (and surplus) -->
<dirset id="assets.dirset" dir="assets/" defaultexcludes="yes"/>
<!-- assets -->
<fileset id="assets.fileset" dir="assets/" includes="**" excludes="asset.index" defaultexcludes="yes"/>
</path>
<pathconvert pathsep="${line.separator}" property="assets" refid="assets.path" dirsep="/">
<mapper>
<globmapper from="${basedir}/assets/*" to="*" handledirsep="yes"/>
</mapper>
</pathconvert>
<echo file="assets/asset.index">${assets}</echo>
</target>
<target name="-pre-build" depends="index-assets"/>
Run Code Online (Sandbox Code Playgroud)
我想我还没有完全掌握基本的Gradle概念,但这是我尝试过的:
task indexAssets << {
def assets = file("assets")
def contexts = files(assets)
inputs.file(assets)
outputs.file("assets/assets-gradle.index")
def tree = fileTree(dir: 'assets', include: ['**/*'], exclude: ['**/.svn/**', 'asset.index'])
contexts.collect { relativePath(it) }.sort().each { println it }
tree.collect { relativePath(it) }.sort().each …Run Code Online (Sandbox Code Playgroud) 我得到一个DEX错误(已添加类..)因为mina依赖于slf4j-api,而slf4j-android也在内部携带一些slf4j-api.有没有办法解决这个问题,同时仍然使用gradle外部(基于maven)依赖?
dependencies {
compile('org.apache.mina:mina-core:2.0.7')
compile 'org.slf4j:slf4j-android:1.6.1-RC1'
}
Run Code Online (Sandbox Code Playgroud)