提交 366f0d78 编写于 作者: C Chris Beams

Generate -sources and -javadoc jars

Each spring-* subproject now has sourcesJar and javadocJar tasks

 - Ignore subproject overview.html files for now (not all have one)
 - Ensure @author attribution occurs
 - Javadoc 'header' is project description

spring-asm is a special case

 - source jar is created, but empty (to comply with entry rules for
   Maven Central)

 - add package-info.java explaining the nature of spring-asm
   this is nice, because it shows up in the public API docs now.

 - add SpringAsmInfo in the org.springframework.asm package as a
   placeholder allowing the generation of javadocs (see link to bug)

 - add explicit 'repackageAsm' Gradle task allowing for easy testing
   and merging of jar containing bundlor manifest as well as jar
   containing repackaged ASM classes.
上级 2bab8f3c
......@@ -53,21 +53,70 @@ configure(subprojects) {
expand(copyright: new Date().format('yyyy'), version: project.version)
}
}
}
configure(subprojects - project(":spring-asm")) {
javadoc {
options.memberLevel = org.gradle.external.javadoc.JavadocMemberLevel.PROTECTED
options.author = true
options.header = project.name
//options.overview = "${projectDir}/src/main/java/overview.html"
}
task sourcesJar(type: Jar, dependsOn:classes) {
classifier = 'sources'
from sourceSets.main.allSource
from sourceSets.main.allJava
}
task javadocJar(type: Jar) {
classifier = 'javadoc'
from javadoc
}
artifacts {
archives sourcesJar
archives javadocJar
}
}
project("spring-asm") {
description = 'Spring ASM'
asmVersion = '2.2.3'
configurations {
asm
jarjar
}
dependencies {
asm "asm:asm:${asmVersion}@jar", "asm:asm-commons:${asmVersion}@jar"
jarjar 'com.googlecode.jarjar:jarjar:1.1'
}
task repackageAsm(type: Jar) { jar ->
jar.baseName = "asm-repack"
jar.version = asmVersion
doLast() {
project.ant {
taskdef name: "jarjar", classname: "com.tonicsystems.jarjar.JarJarTask",
classpath: configurations.jarjar.asPath
jarjar(destfile: archivePath, index: "true", filesetmanifest: "merge") {
configurations.asm.each { jarfile ->
zipfileset(src: jarfile)
}
rule(pattern: 'org.objectweb.asm.**', result: 'org.springframework.asm.@1')
}
}
}
}
jar {
dependsOn repackageAsm
from(zipTree(repackageAsm.archivePath)) {
exclude 'META-INF/INDEX.LIST'
}
}
}
project('spring-core') {
description = 'Spring Core'
dependencies {
......@@ -374,8 +423,8 @@ project('spring-struts') {
project('spring-aspects') {
description = 'Spring Aspects'
apply from: 'aspectJ.gradle'
compileJava.dependsOn project(":spring-orm").jar
dependencies {
compile project(":spring-orm")
aspects project(":spring-orm")
ajc "org.aspectj:aspectjtools:1.6.8"
compile "org.aspectj:aspectjrt:1.6.8"
......
description = 'Spring ASM'
configurations { jarjar }
dependencies { jarjar 'com.googlecode.jarjar:jarjar:1.1' }
configurations { asm }
dependencies { asm 'asm:asm:2.2.3@jar', 'asm:asm-commons:2.2.3@jar' }
jar << {
project.ant {
taskdef name: "jarjar", classname: "com.tonicsystems.jarjar.JarJarTask", classpath: configurations.jarjar.asPath
jarjar(destfile: archivePath, index: "true", filesetmanifest: "merge") {
configurations.asm.each { jarfile ->
zipfileset(src: jarfile)
}
rule(pattern: 'org.objectweb.asm.**', result: 'org.springframework.asm.@1')
}
}
}
// TODO: integrate bundlor in jarjar routine
// TODO: create source jar
// TODO: review overall jarjar approach with Gradle team
/*
* Copyright 2002-2012 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.springframework.asm;
/**
* Placeholder to allow Javadoc generation. Required because
* <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4492654">this bug</a>
* does not allow the generation of Javadoc for packages having only a
* {@code package-info.java} file.
* <p>See <a href="package-summary.html">package-level Javadoc</a> for more
* information on {@code org.springframework.asm}.
*
* @author Chris Beams
* @since 3.2
*/
public final class SpringAsmInfo {
}
/**
* Spring's repackaging of {@code org.objectweb.asm.*} (for internal use only).
* <p>This repackaging technique avoids any potential conflicts with
* dependencies on ASM at the application level or from other third-party
* libraries and frameworks.
* <p>As this repackaging happens at the classfile level, sources and Javadoc
* are not available here. See the original ObjectWeb
* <a href="http://asm.ow2.org/asm223/javadoc/user">ASM 2.2.3 Javadoc</a>
* for details when working with these classes.
*/
package org.springframework.asm;
<html>
<body>
<p>
The Spring Data Binding framework, an internal library used by Spring Web Flow.
Spring's AspectJ-based aspects.
</p>
</body>
</html>
\ No newline at end of file
</html>
<html>
<body>
<p>
The Spring Data Binding framework, an internal library used by Spring Web Flow.
Spring's instrumentation agent for Tomcat.
</p>
</body>
</html>
\ No newline at end of file
</html>
<html>
<body>
<p>
Spring's test context framework. Also includes common Servlet and Portlet API mocks.
Spring's TestContext framework. Also includes common Servlet and Portlet API mocks.
</p>
</body>
</html>
\ No newline at end of file
</html>
<html>
<body>
<p>
Spring's MVC framework in its Servlet API version. Includes support for common view technologies.
Spring's MVC framework in its Servlet API version. Includes support for common view technologies.
</p>
</body>
</html>
\ No newline at end of file
</html>
<html>
<body>
This is the public API documentation for the <a href="http://github.com/SpringSource/spring-framework" target="_top">Spring Framework</a>.
</body>
<body>
<p>
This is the public API documentation for the <a href="http://github.com/SpringSource/spring-framework" target="_top">Spring Framework</a>.
</p>
</body>
</html>
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册