我们公司使用Maven.我们使用Nexus存储库管理器来存储我们的快照和版本.
目前,我们正在开发基于Eclipse的产品.我们用Tycho来做那件事.
问题如下:在我们基于Eclipse的产品中,我们有许多功能.我们的想法是分别构建每个功能(或功能组)并将它们放在内部p2存储库中.当一个功能需要另一个功能时,我们将目标平台指向必要的内部p2存储库.
目前,我们用Tycho构建应用程序.我们使我们的功能"可部署",因此Tycho生产了一个P2站点target
.我们将P2站点推送到我们的服务器,然后运行Eclipse FeaturesAndBundlesPublisher
,它将最近构建的功能与P2存储库合并.因此,我们有一个内部P2存储库,其中包含所有必需功能的版本.
我们发现这个过程太麻烦了.是否有像Nexus这样的工具,哪个更方便?
UPD .: 有关Tycho用户列表的讨论
我们有几个maven项目,它们构建在构建服务器上.在某些情况下,我们希望签署我们的可交付成果.我们使用Maven Jarsigner插件来做到这一点.
我们面临以下问题:
我们不希望将我们的密钥库放在我们服务器上的某个位置并对其进行硬编码.所以我们只是将这个密钥库包装在一个jar中,并将其作为工件上传到我们的内部maven存储库.当我们想要签署maven项目时,我们使用Maven Dependency Plugin下载密钥库工件,并将签名目标附加到maven构建生命周期.这是更详细的信息.
为了隐藏密钥库的密码,我们将它们放入公司pom.xml
文件中.我们还考虑将密码存储在settings.xml
构建服务器上.
在开发人员计算机上构建和签署项目时,我们使用自签名证书对其进行签名.但是当在构建服务器上构建和签署项目时,我们使用"官方"证书对其进行签名.
这是一个好策略吗?
假设我们有一个项目命名project
和模块module1
和module2
,早前我倾向于使用下面的命名策略:
-- project
-- projectModule1
-- projectModule2
Run Code Online (Sandbox Code Playgroud)
现在我用另一个:
-- project
-- project-module1
-- project-module2
Run Code Online (Sandbox Code Playgroud)
Maven模块命名的最佳实践是什么?
我想只为我的应用程序提供iPhone支持.
从PhoneGap文档中我可以看到,可以handset
在target-device
以下位置设置选项:
<preference name="target-device" value="handset" />
Run Code Online (Sandbox Code Playgroud)
但这不起作用.在构建之后(我在机器上本地构建应用程序),我看到Devices
设置Universal
在Deployment Info
项目中.
如何禁用iPad支持?
我无法连接到Windows上的Docker中运行的HBase(banno/hbase-standalone映像).但是,我可以连接到本地安装的HBase.
banno/hbase-standalone图像使用以下命令运行:
docker run -d -p 2181:2181 -p 60000:60000 -p 60010:60010 -p 60020:60020 -p 60030:60030 banno/hbase-standalone
Run Code Online (Sandbox Code Playgroud)
我还设置了端口转发boot2docker-vm
(在Windows上运行时需要):
我可以成功telnet到我的localhost上的所有端口.
接下来,这是我们在测试中使用的代码示例:
Configuration config = HBaseConfiguration.create();
config.clear();
config.setInt("timeout", 12000);
config.set("zookeeper.znode.parent", "/hbase");
config.set("hbase.zookeeper.quorum", "127.0.0.1");
config.set("hbase.zookeeper.property.clientPort", "2181");
config.set("hbase.master", "127.0.0.1:60000");
final Configuration configuration = HBaseConfiguration.create(config);
JobDefinition.Buildable.dumpProperties(configuration, newArrayList("hbase.*"));
HBaseAdmin.checkHBaseAvailable(config);
Run Code Online (Sandbox Code Playgroud)
这导致以下异常
Exception in thread "main" org.apache.hadoop.hbase.MasterNotRunningException: com.google.protobuf.ServiceException: java.net.UnknownHostException: unknown host: a3e6c240af20
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation$StubMaker.makeStub(HConnectionManager.java:1651)
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation$MasterServiceStubMaker.makeStub(HConnectionManager.java:1677)
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getKeepAliveMasterService(HConnectionManager.java:1885)
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.isMasterRunning(HConnectionManager.java:900)
at org.apache.hadoop.hbase.client.HBaseAdmin.checkHBaseAvailable(HBaseAdmin.java:2366)
at com.xxx.compute.hadoop.jobs.transaction.OurTest.main(OurTest.java:24)
Caused by: com.google.protobuf.ServiceException: java.net.UnknownHostException: unknown host: a3e6c240af20
at org.apache.hadoop.hbase.ipc.RpcClient.callBlockingMethod(RpcClient.java:1674)
at …
Run Code Online (Sandbox Code Playgroud) 假设我有两个部署,除了部署名称之外,它们完全相同:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-d
spec:
replicas: 3
selector:
matchLabels:
app: mynginx
template:
metadata:
labels:
app: mynginx
spec:
containers:
- name: nginx
image: nginx
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-d2
spec:
replicas: 3
selector:
matchLabels:
app: mynginx
template:
metadata:
labels:
app: mynginx
spec:
containers:
- name: nginx
image: nginx
Run Code Online (Sandbox Code Playgroud)
由于这两个部署具有相同的选择器和相同的 Pod 模板,因此我希望看到三个 Pod。但是,创建了六个 Pod:
# kubectl get pods --show-labels
NAME READY STATUS RESTARTS AGE LABELS
nginx-d-5b686ccd46-dkpk7 1/1 Running 0 4m16s app=mynginx,pod-template-hash=5b686ccd46
nginx-d-5b686ccd46-nz7wf 1/1 Running 0 …
Run Code Online (Sandbox Code Playgroud) 我有一个布局,在底部的前2个按钮上有标题,一些文本视图和两者之间的编辑文本.我愿意将这些EditText和Text视图放在滚动视图中,这样我就可以滚动并且EditText不会隐藏在键盘后面.
这是我的XML文件,我很抱歉它有点冗长,但是请看看这个,让我知道这有什么不对.我总是得到
java.lang.RuntimeException:二进制XML文件行#73:你必须提供layout_width属性.我试过改变宽度和高度很多方法,但我总是得到这个错误.
XML文件
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:gravity="center_horizontal">
<!-- Title(Preview) Background and Text-->
<RelativeLayout
android:id="@+id/previewBG"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/title_bg">
<TextView
android:id="@+id/previewTxt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/addDevicesTittle"
android:textSize="24sp"
android:typeface="sans"
android:textColor="#ffffff"
android:layout_centerInParent="true"
>
</TextView>
</RelativeLayout>
<!-- Title(Preview) Background and Text End -->
<!-- Buttons -->
<LinearLayout
android:id="@+id/Buttons"
android:layout_width="fill_parent"
android:layout_height="60dip"
android:layout_alignParentBottom="true"
android:background="@color/COL_BTNBG">
<LinearLayout
android:id="@+id/btnRefresh_part"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="6dip">
<Button
android:id="@+id/btnSave"
android:layout_width="fill_parent"
android:layout_height="49dip"
android:text="@string/btn_manual_save"
android:textSize="24sp"
android:typeface="sans"
android:textColor="@color/COL_WHITE"
android:layout_weight ="1"
android:background="@+drawable/button_02"
>
</Button>
<Button
android:id="@+id/btnCancel"
android:layout_width="fill_parent"
android:layout_height="49dip"
android:text="@string/btn_manual_cancel"
android:textSize="24sp"
android:typeface="sans"
android:textColor="@color/COL_WHITE"
android:layout_weight ="1"
android:background="@+drawable/button_02" …
Run Code Online (Sandbox Code Playgroud) 我正在为另一家公司开发 Android 应用程序。我想在我自己的 Google Play 帐户下发布此应用程序。该应用程序将具有应用内计费。
我是否可以拥有多个 Google Merchant 帐户,以便一个应用程序的应用内付款会进入一个帐户,而另一应用程序的应用内付款会进入另一个帐户?将同一 Google Play 帐户下不同应用的应用内付款定向到不同银行帐户的其他策略是什么?
类似的问题在这里被问到,但是这个问题没有明确的答案。
android in-app-purchase in-app-billing google-play android-pay
是否可以从sdk v24开始在Android Gallery中打开相册?
我有一个应用程序操纵图像并将其保存到特定专辑名称下的外部存储.我希望应用程序能够直接在Android Gallery中打开该相册.是否有可能实现这一目标?
我可以轻松打开一个文件,但不能打开整个相册:
我的 AndroidManifest.xml
...
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="${applicationId}.provider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/provider_paths"/>
</provider>
...
Run Code Online (Sandbox Code Playgroud)
我的 provider_paths.xml
<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<external-path name="external_files" path="."/>
</paths>
Run Code Online (Sandbox Code Playgroud)
我打开特定文件的处理:
Intent i = new Intent();
i.setAction(Intent.ACTION_VIEW);
File myFile = new File(new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), MY_ALBUM_NAME), MY_FILE_NAME);
Uri myUri = FileProvider.getUriForFile(context, context.getPackageName() + ".provider", myFile);
i.setDataAndType(myUri, "image/*");
i.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
startActivity(i);
Run Code Online (Sandbox Code Playgroud)
打开特定文件可以正常工作.但是,我无法打开整张专辑.那可能吗?
我是AWS的新手,所以这可能是一个简单的问题.
当我使用AWS CloudFormation模板创建DynamoDB表时,我没有看到为表提供名称的方法.所以最后它被命名为{stackName}-{resourceName}-{randomLetters}
.但是,如果我手动创建DynamoDB表,我有可能提供表名.
我的模板:
"Resources" : {
"mytable" : {
"Type" : "AWS::DynamoDB::Table",
"Properties" : {
"KeySchema" : {
"HashKeyElement": {
"AttributeName" : {"Ref" : "HashKeyElementName"},
"AttributeType" : {"Ref" : "HashKeyElementType"}
}
},
"ProvisionedThroughput" : {
"ReadCapacityUnits" : {"Ref" : "ReadCapacityUnits"},
"WriteCapacityUnits" : {"Ref" : "WriteCapacityUnits"}
}
}
}
...
}
Run Code Online (Sandbox Code Playgroud)
例如,如果我创建一个名为"mystack"的堆栈,则创建的DynamoDB表将具有类似于"mystack-mytable-NUEXAXXOMBXX"的名称.
我使用PayPal Android SDK在我的应用程序中集成PayPal付款,它工作正常.我想知道,我可以禁用"card.io"支持(用户扫描信用卡的地方)吗?结果删除4MB的.so"card.io"libs文件?我在官方PayPal网站和Google上都找不到任何相关信息.
我正在使用JAX-RS 示例。此示例包含两个 RESTful Web 服务,一个带有注释,另一个没有。
我使用 maven 构建它并将其与 CXF DOSGi 单包分发一起部署到 Felix 中。没有注释的一个工作正常,但是另一个有注释的似乎完全被忽略了。我在日志中收到以下消息:
WARNING: No resource methods have been found for resource class org.apache.cxf.dosgi.samples.greeter.rest.GreeterService
Jun 15, 2011 10:34:17 PM org.apache.cxf.jaxrs.AbstractJAXRSFactoryBean checkResources
SEVERE: No resource classes found
Exception in thread "pool-1-thread-1" org.apache.cxf.service.factory.ServiceConstructionException
at org.apache.cxf.jaxrs.JAXRSServerFactoryBean.create(JAXRSServerFactoryBean.java:122)
at org.apache.cxf.dosgi.dsw.handlers.JaxRSPojoConfigurationTypeHandler.createServer(JaxRSPojoConfigurationTypeHandler.java:135)
at org.apache.cxf.dosgi.dsw.service.RemoteServiceAdminCore.exportService(RemoteServiceAdminCore.java:244)
at org.apache.cxf.dosgi.dsw.service.RemoteServiceAdminInstance$1.run(RemoteServiceAdminInstance.java:78)
at org.apache.cxf.dosgi.dsw.service.RemoteServiceAdminInstance$1.run(RemoteServiceAdminInstance.java:71)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.cxf.dosgi.dsw.service.RemoteServiceAdminInstance.exportService(RemoteServiceAdminInstance.java:71)
at org.apache.cxf.dosgi.dsw.service.RemoteServiceAdminInstance.exportService(RemoteServiceAdminInstance.java:40)
at org.apache.cxf.dosgi.topologymanager.TopologyManager$2.run(TopologyManager.java:254)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: javax.ws.rs.WebApplicationException
at org.apache.cxf.jaxrs.AbstractJAXRSFactoryBean.checkResources(AbstractJAXRSFactoryBean.java:238)
at org.apache.cxf.jaxrs.JAXRSServerFactoryBean.create(JAXRSServerFactoryBean.java:85)
... 11 …
Run Code Online (Sandbox Code Playgroud) Kubernetes 的默认设置是什么CrashLoopBackOff
?
假设我有一个 pod:
kubectl run mynginx --image nginx -- echo hello
Run Code Online (Sandbox Code Playgroud)
我检查它的状态:
kubectl get pods -w
NAME READY STATUS RESTARTS AGE
mynginx 0/1 Pending 0 0s
mynginx 0/1 Pending 0 0s
mynginx 0/1 ContainerCreating 0 0s
mynginx 0/1 Completed 0 2s
mynginx 0/1 Completed 1 4s
mynginx 0/1 CrashLoopBackOff 1 5s
mynginx 0/1 Completed 2 20s
mynginx 0/1 CrashLoopBackOff 2 33s
mynginx 0/1 Completed 3 47s
mynginx 0/1 CrashLoopBackOff 3 59s
mynginx 0/1 Completed 4 97s
mynginx …
Run Code Online (Sandbox Code Playgroud) android ×3
java ×2
kubernetes ×2
maven ×2
maven-2 ×2
android-pay ×1
card.io ×1
convention ×1
cordova ×1
cxf ×1
deployment ×1
docker ×1
dosgi ×1
eclipse ×1
gallery ×1
google-play ×1
hbase ×1
ipad ×1
iphone ×1
jarsigner ×1
jax-rs ×1
label ×1
naming ×1
nat ×1
nexus ×1
p2 ×1
paypal ×1
signing ×1
tycho ×1
windows ×1