Java 存放插件的.p12文件放在哪里?

Java 存放插件的.p12文件放在哪里?,java,google-api,google-oauth,bitbucket-server,atlassian-plugin-sdk,Java,Google Api,Google Oauth,Bitbucket Server,Atlassian Plugin Sdk,所以我正在尝试编写一个隐藏post接收钩子插件,最终将一些相关信息写入Google电子表格。 为此,我必须从.p12文件中提取用于Oauth2身份验证的私钥。我做了两个测试项目,它们只是普通的Java命令行应用程序,我只需要在根目录中输出.p12文件,然后从那里调用它。我做了另一个,我可以从参考资料文件夹中调用它,这也很好 我移植了代码,解决了所有依赖项,并运行了它。我天真地在根目录中删除了.p12文件,显然得到了一个文件未找到异常。查看目标目录,发现它从来没有把它带过来,重新调整并将其放在re

所以我正在尝试编写一个隐藏post接收钩子插件,最终将一些相关信息写入Google电子表格。 为此,我必须从.p12文件中提取用于Oauth2身份验证的私钥。我做了两个测试项目,它们只是普通的Java命令行应用程序,我只需要在根目录中输出.p12文件,然后从那里调用它。我做了另一个,我可以从参考资料文件夹中调用它,这也很好

我移植了代码,解决了所有依赖项,并运行了它。我天真地在根目录中删除了.p12文件,显然得到了一个文件未找到异常。查看目标目录,发现它从来没有把它带过来,重新调整并将其放在resources文件夹中,看看它是否会被带过来。另一个文件未找到异常,仍然不在目标目录中。我试着把它放在几个不同的地方,只是想看看它是否会被带过来。到目前为止,一切都不起作用

我做错了什么

我想我可以把文件放在我的隐藏实例上,然后从那里调用它,但我更希望它在插件中自包含


我到处找了很多,但没有找到真正相关的东西。有人有什么建议吗?

如果有人看到这一点并想知道我是如何解决的。。。 一位Atlassian开发人员向我指出,我的主要问题是我只是将.p12文件放在根资源目录中。当我把它放进它自己的文件夹里时,它就像一个符咒。我的最后一段代码(借助于其他堆栈溢出问题)

String sheetURL = "XXXXXX@XXXXXX-XXXX.iam.gserviceaccount.com";
HttpTransport httpTransport = new NetHttpTransport();
JacksonFactory jsonFactory = new JacksonFactory();
String[] SCOPESArray = {"https://spreadsheets.google.com/feeds", "https://spreadsheets.google.com/feeds/spreadsheets/private/full", "https://docs.google.com/feeds"};

final List SCOPES = Arrays.asList(SCOPESArray);
GoogleCredential credential = null;
InputStream stream = null;
File tempFile = null;

try {
    stream = this.getClass().getClassLoader().getResourceAsStream("authentication/key.p12");
    tempFile = File.createTempFile("temp", "temp");
    IOUtils.copy(stream, new FileOutputStream(tempFile));
}
catch (IOException e) {
    print(e.toString());
}
finally {
    if (stream != null) {
        IOUtils.closeQuietly(stream);
    }
}

credential = new GoogleCredential.Builder()
    .setTransport(httpTransport)
    .setJsonFactory(jsonFactory)
    .setServiceAccountId(sheetURL)
    .setServiceAccountScopes(SCOPES)
    .setServiceAccountPrivateKeyFromP12File(tempFile) 
    .build();