我目前管理一些单独的Maven项目,其中我使用Protobufs作为序列化格式并通过线路.我正在使用David Trott的maven-protoc插件在编译时生成代码.
一切都很好,直到我希望这些项目彼此之间进行通信 - 或者更确切地说,使用彼此的protobufs.protobuf语言有一个"导入"指令,可以完成我想要的操作,但是我面临的挑战是让项目A导出一个".proto"文件(或者可能是一些中间格式?),以供项目B依赖.
Maven提供了一种项目捆绑资源的方法,但是AFAIK,这些是在运行时由代码使用,而不是在编译/源代码生成阶段由目标使用 - 至少我找不到描述的文档我想要实现的目标.
我正在尝试为我项目中的所有模块创建一个聚合Javadoc站点,但我似乎无法以令人满意的方式配置插件.主要是,我似乎无法在检测链接和排除某些包时聚合javadoc.从本质上讲,似乎完全忽略了插件的配置.
我有一个root pom.xml,它引用了一堆子模块并包含以下配置:
<modules>
<module>foo</module>
<module>bar</module>
</modules>
<build>
<plugins>
<plugin>
<groupId>org.maven.apache.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.9</version>
<executions>
<execution>
<id>aggregate</id>
<phase>site</phase>
<goals>
<goal>aggregate</goal>
</goals>
<configuration>
<links>
<link>http://docs.oracle.com/javase/6/docs/api</link>
<link>http://static.netty.io/3.5/api</link>
<link>http://google-guice.googlecode.com/git/javadoc</link>
<link>http://docs.guava-libraries.googlecode.com/git-history/release/javadoc</link>
<link>http://fasterxml.github.com/jackson-databind/javadoc/2.0.4</link>
<link>https://developers.google.com/protocol-buffers/docs/reference/java</link>
</links>
<bootclasspath>${sun.boot.class.path}</bootclasspath>
<additionalJOption>-J-Xmx1024m</additionalJOption>
<detectJavaApiLink>true</detectJavaApiLink>
<detectLinks>true</detectLinks>
<excludePackageNames>*.testing.*</excludePackageNames>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
Run Code Online (Sandbox Code Playgroud)
但是,当我mvn javadoc:aggregate使用此设置运行时,我最终得到一个javadoc站点,该站点没有指向任何引用库的链接,并且仍包含所有测试类.
我甚至没有看到插件试图下载每个声明的链接源的包列表.
另一方面,为每个单独的模块生成javadoc可以正常工作并且符合预期.
我错了什么?
我一直在尝试使用Polymer在浏览器中简单地渲染一个非常小的网页 - 我在服务器端使用Node/ExpressJS/Jade设置.我的代码与Polymer文档附带的示例一样接近,我想我错过了一些非常简单的东西.我正在使用Chrome M35.
在服务器上,我已经使用bower安装了所有的Polymer材料(平台,核心和纸张),我已经映射bower_components到静态服务/static
app.use('/static', express.static(path.join(process.cwd(), 'bower_components')))
Run Code Online (Sandbox Code Playgroud)
我已经验证我的服务器可以正确地提供资源,例如http://localhost:3000/static/paper-button/paper-button.html- 这将返回所需文件的内容.
页面提供的HTML是这样的:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="/static/platform/platform.js"></script>
<title>Authenticate</title>
<link rel="import" src="/static/paper-button/paper-button.html">
<style>
body {
font-family: 'Helvetica Neue';
margin: 0;
padding: 24px;
user-select: none;
transform: translateZ(0);
}
paper-button {
margin: 1em;
width: 10em;
}
paper-button.colored {
color: #4285f4;
fill: #4285f4;
}
</style>
</head>
<body>
<paper-button label="Authenticate" class="colored"></paper-button>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
这与Polymer网站上记录的相同小部件的示例非常接近.在我的情况下,没有任何渲染.真正奇怪的是检查器的"网络"选项卡中显示的内容:

有一个Loader.js脚本,我相信它是由安装的platform.js,它为根页本身(第3行)发送XHR.在我看到的每个其他示例中,加载脚本开始加载导入的Web组件.我无法弄清楚为什么它在我的情况下这样做.另一个奇怪的事情是来自Parser.js的请求 - 请求的数据URL data:text/javascript;base64,Ci8vIyBzb3VyY2VVUkw9bnVsbC9bMTQ1M10uanMK,转换为://# …