2011-05-20 43 views
1

我在所有的java项目(以及一些非java项目)上都使用了maven。但是,我非常喜欢使用注释将配置从XML文件移出到java源文件中。我最近发现Groovy的葡萄页面上的以下内容:java中使用注释的依赖管理

添加一个依赖

@Grab(group='org.springframework', module='spring', version='2.5.6') 
import org.springframework.jdbc.core.JdbcTemplate 

虽然这是Groovy代码,似乎上面的不应该是用Java完全不可能。虽然这似乎不太可能(或将)构建到javac本身,但它可以内置到Maven或其他构建“包装器”中。

你的想法是什么?

编辑:它只是发生在我注意到在java中的导入语句无效。这确实存在一个问题...

+0

假设您有250个java源文件,它们都会导入org.springframework.jdbc.core。你会在哪里搜索构建依赖关系的注释? – Omnaest 2011-05-20 18:09:36

+0

只要至少有一个导入语句(假设当前在导入语句中允许注释)在其构建依赖关系来自何处时指定。如果发现两个相冲突的规格,则可能会引发错误。 – 2011-05-20 20:45:50

回答

0

您可以构建一个注释预处理器来分析这些类型的注释的源代码。查看Javadocs here

0

我不认为你会喜欢用依赖注释注释所有类的想法。这就是为什么这些类被分组到称为模块或项目的单元中的原因,以便一个工件的导入或依赖关系解析可用于特定组或模块中的所有类。

但是,您很可能成为Gradle的忠实粉丝。虽然它不完全是注释,但Gradle解决了大部分您的担忧。

0

技术上讲,它是可以写*上的任何语言(Groovy中,蟒蛇,ANTLR)将处理文件和生成的pom.xml .java文件预处理程序(更好只需填写依赖性节中存在的pom.xml )在注释和模块结构的基础上(注释应该注意不要打扰java编译器和IDE高亮显示,像旧的XDoclet)。我想这是你自己的项目的想法)。 但是从我的观点来看,这是个坏主意。如果你想改变春天的版本会发生什么?你应该扫描所有的项目文件,并在重新编译之后进行替换。构建和配置应该与代码分离。