I have a simple java project that uses json.jar library. gradle.build file content is:
apply plugin: 'java' jar { manifest { attributes( 'Class-Path': configurations.compile.collect { it.getName() }.join(' '), 'Main-Class': 'main.java.Main' ) } } dependencies { compile 'org.json:json:20160212' }
problem is when I want to add json to my classpath and use it, this error happens
* Where: Build file '/home/tina-admin/Documents/myJavaProjects/LongMan/build.gradle' line: 11 * What went wrong: A problem occurred evaluating root project 'LongMan'. > Cannot change dependencies of configuration ':compile' after it has been resolved.
how can I solve this?
Advertisement
Answer
First, you have to add a repositories
block to specify where dependencies are retrieved from (usually before dependencies {...}
.
repositories { mavenCentral() }
Then, if you put the dependencies
block before the jar
block it seems to work, although I’m not sure about why it doesn’t work the other way (maybe jar {...}
uses the compile
configuration and “locks” it).