如果有人可以帮助我,这将节省我很多时间.
我维护一个开源库,它被推送到一个sonatype存储库.我每天对该库进行几次更改,并使用mvn deploy将其推送到1.0_snapshot构建.我们称之为project1
我在另一个使用该库的项目中不断工作,我们称之为project2.
现在,每当我对项目1或2进行更改时,我需要首先构建项目1并将其部署到repo,然后构建项目2,以便下载project1.jar的新副本
Project2将Project1作为pom.xml中的依赖项:
<dependency>
<groupId>com.group</groupId>
<artifactId>project1</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
为了构建一个可以测试我所有更改的方法,我必须做这样的事情:
mvn -f ./project1/pom.xml clean deploy
mvn -U -f ./project2/pom.xml clean package
Run Code Online (Sandbox Code Playgroud)
这会将我的project1.jar上传到sonatype,然后project2下载新的快照并构建它.
这是我正在做的更大规模的简化图片,我的编译需要5分钟的上传和下载.
问题:使用maven的正确方法是什么,因此它知道在项目2的依赖项中使用project1的源代码?
试图让我的GAE 1.9.0项目的单元测试使用maven 3.2.1运行.数据存储相关测试失败:
java.util.ServiceConfigurationError:
com.google.appengine.tools.development.LocalRpcService:
Provider com.google.appengine.api.datastore.dev.LocalDatastoreV4Service
could not be instantiated: java.lang.NoClassDefFoundError:
com/google/apphosting/datastore/DatastoreV4$LookupRequestOrBuilder
Run Code Online (Sandbox Code Playgroud)
我明白这意味着我错过了依赖.似乎无法找到有关如何正确配置数据存储区测试的pom.xml的文档.我打电话时测试崩溃了
helper.setup()
Run Code Online (Sandbox Code Playgroud)
在帮手上:
public final LocalServiceTestHelper helper = new LocalServiceTestHelper(
new LocalDatastoreServiceTestConfig(),
new LocalTaskQueueTestConfig(),
new LocalBlobstoreServiceTestConfig(),
new LocalUserServiceTestConfig()));
Run Code Online (Sandbox Code Playgroud)
引用:
https://developers.google.com/appengine/docs/java/tools/maven#junit_dependencies_optional
我的pom.xml中的测试依赖项
<dependency>
<groupId>com.google.appengine</groupId>
<artifactId>appengine-testing</artifactId>
<version>${appengine.target.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.google.appengine</groupId>
<artifactId>appengine-api-stubs</artifactId>
<version>${appengine.target.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.google.appengine</groupId>
<artifactId>appengine-api-labs</artifactId>
<version>${appengine.target.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>3.2.1.RELEASE</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>spring</groupId>
<artifactId>spring-mock</artifactId>
<version>1.0.2</version>
<scope>test</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)
堆栈跟踪的其余部分:
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native …Run Code Online (Sandbox Code Playgroud) 在 amazon aws lambda 中执行代码时,我的 @autowired spring 依赖项为空。如果没有加载上下文是有道理的,但我认为 SpringBeanAutowiringSupport 会有所帮助。如何在 amazon lambda 中正确注入依赖?
这是我的代码,它具有 null 自动装配字段,但其他工作正常(如果我用 new 替换自动装配:
@Component
public class ApplicationEventHandler {
@Autowired
private Foo foo;
public ApplicationEventHandler() {
logger.info("I'm sure the constructor is being called");
SpringBeanAutowiringSupport.processInjectionBasedOnCurrentContext(this);
//doesn't seem to help
}
public void deliveryFailedPermanentlyHandler(SNSEvent event, Context context) throws IOException {
foo.doStuff() // causes NPE
}
Run Code Online (Sandbox Code Playgroud)
提前致谢!
好的,周末就是这个 - 这是我最后一个星期天晚上的求助电话.
必须使用2 Legged OAUTH aproach的Google Marketplace应用需要将50K记录写入Google Doc电子表格.我能够创建,调整大小,重命名和将记录写入电子表格.单独写100行需要一分钟,所以我必须使用批量更新.无法让批量更新工作.下面的代码是我最好的尝试 - 我一直得到"令牌无效 - 令牌401无效".所有示例代码都是针对三条腿的oauth - 但我不能提示用户批准该应用程序,因为它是一个市场应用程序
使用openid和2LO找到批量电子表格更新的示例会很棒
final String SCOPE = "https://spreadsheets.google.com/feeds/spreadsheets/private/full";
SpreadsheetService spreadsheetService;
String consumerKey = getInitParameter("consumer_key");
String consumerSecret = getInitParameter("consumer_secret");
GoogleOAuthParameters oauthParameters = new GoogleOAuthParameters();
oauthParameters.setOAuthConsumerKey(consumerKey);
oauthParameters.setOAuthConsumerSecret(consumerSecret);
oauthParameters.setOAuthType(OAuthParameters.OAuthType.TWO_LEGGED_OAUTH);
oauthParameters.setScope(SCOPE);
OAuthSigner signer = new OAuthHmacSha1Signer();
spreadsheetService = new SpreadsheetService("nimbits-com");
String title = entity.getName().getValue();
try {
spreadsheetService.setOAuthCredentials(oauthParameters, signer);
spreadsheetService.setProtocolVersion(SpreadsheetService.Versions.V3);
SpreadsheetQuery query = new SpreadsheetQuery(new URL(SCOPE));
query.addCustomParameter(new Query.CustomParameter("xoauth_requestor_id", user.getEmail().getValue()));
query.setTitleQuery(title);
SpreadsheetFeed feed = spreadsheetService.query(query, SpreadsheetFeed.class);
//works fine up to this point, I …Run Code Online (Sandbox Code Playgroud) 给出一个包含这样内容的文件:
foo: 8.3.1
bar: 803001
Run Code Online (Sandbox Code Playgroud)
我需要一个bash脚本来读取这个文件只增加最后一个数字,并考虑第二行的最后三位数作为xyx中z的空间增长到三位数(并用新数据覆盖原始文件:
输入1:
foo: 8.3.1
bar: 803001
Run Code Online (Sandbox Code Playgroud)
输出1:
foo: 8.3.2
bar: 803002
Run Code Online (Sandbox Code Playgroud)
输入2:
foo: 8.3.9
bar: 803009
Run Code Online (Sandbox Code Playgroud)
输出2:
foo: 8.3.10
bar: 803010
Run Code Online (Sandbox Code Playgroud)
输入3:
foo: 8.3.199
bar: 803199
Run Code Online (Sandbox Code Playgroud)
输出3:
foo: 8.3.200
bar: 803200
Run Code Online (Sandbox Code Playgroud)
我可以在2秒内在java中执行此操作,但我需要在shell脚本中执行此操作,否则我将面临构建团队无休止的嘲弄.
没有一些粗略的字符串拆分任何光滑的sep命令将是一个很大的帮助!