我正在使用自定义目录结构并在sourcedirectory标记中指定了目录.但我仍然得到消息No sources to compile.虽然构建成功.
我的目录结构:
所以不是src/main/java,我正在使用java.(我有理由这样做,所以现在不可能切换到src/main/java)
这是我的pom.xml:
<artifactId>application</artifactId>
<name>application</name>
<packaging>jar</packaging>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.test.skip>true</maven.test.skip>
</properties>
<build>
<sourceDirectory>java</sourceDirectory>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<excludes>
<exclude>**/old/**/*.java</exclude>
</excludes>
<includes>
<include>java/com/**/*.java</include>
</includes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
<excludes>
<exclude>**/old/**/*.java</exclude>
</excludes>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>com.start.Start</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>
Run Code Online (Sandbox Code Playgroud)
当我运行命令时mvn clean package,我得到以下输出:
源代码未编译,结果jar为空.我提到的使用自定义目录结构与maven的所有来源说使用sourceDirectory应该解决问题.但就我而言,它并没有解决
编辑
我使用自定义目录结构,因为使用标准目录结构对我不起作用.她的问题与此有关: 在eclipse maven中链接源文件夹时出错
EDIT2:
我在java目录中链接源代码.也就是说,在文件系统上,application-> java不存在,但是在eclipse中通过链接源选项,我已经从不同的目录添加了Java源文件夹.因此它出现在日食中.我还使用mvn命令行以及eclipse运行maven命令.
我已经将现有的Java项目转换为Maven项目,Maven在使用命令行时完美地构建了所有内容.
当我将相同的项目导入Eclipse并进行编译时(通过右键单击项目 - >作为Maven构建运行,它仍然可以编译而没有任何问题.
但是,我无法看到源文件夹.当我检查构建路径时,它会发出警告 - 缺少构建路径条目.
我没有使用标准,src/main/java因为我有一个预先存在的项目文件夹结构,无法更改.
这是我的pom(注意sourceDirectory标签):
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycom</groupId>
<artifactId>maven</artifactId>
<version>17.4</version>
<name>maven</name>
<properties>
<projecrt.rootDir>../../java</projecrt.rootDir>
</properties>
<build>
<finalName>re</finalName>
<sourceDirectory>${projecrt.rootDir}</sourceDirectory>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<manifestEntries>
<Build-Version>${buildversion}</Build-Version>
</manifestEntries>
</archive>
</configuration>
</plugin>
</plugins>
</build>
</project>
Run Code Online (Sandbox Code Playgroud)
这是我的目录结构:
Src/java
----maven/pom.xml
----com/mycom/<...> // application code
Run Code Online (Sandbox Code Playgroud) 我最近在eclipse中使用EclEmma插件在我的应用程序中查找JUnits的代码覆盖率并且它工作得很好.
在下一步中,我希望能够找到端到端测试/功能测试的代码覆盖,这些测试/功能测试是从外部调用我们的应用程序(它们驻留在单独的服务器上).
基本上,我们将应用程序打包为jar(我们使用maven)并将其部署在服务器上.我们可以在这个位置触发功能测试.
在这种情况下,有没有办法找到代码覆盖?
我对代码覆盖工具如何工作(以原始语言)的理解是它加载类并根据已被命中的代码部分生成报告.因此,根据这种理解,我不需要访问测试代码.我只需要以某种方式插入的代码覆盖工具为我的应用程序罐子,每当这个罐子的任何代码被调用时,报告将被更新.我的理解是否正确?
注意:如果可以使用其他工具,我可以使用其他代码覆盖率工具.
项目需求,main.js文件不在src根目录下,然后运行vue-cli-service serve出现如下错误
* ./src/main.js in multi (webpack)-dev-server/client?http://10.0.68.112:8080/sockjs-node (webpack)/hot/dev-server.js ./src/main. js
文件目录 src->server->main.js
vue.config.js
const SkeletonWebpackPlugin = require('vue-skeleton-webpack-plugin')
const path = require('path')
模块.出口 = {
outputDir: process.env.CLIENT_NAME === 'client' ?'dist/client' : 'dist/server',
配置Webpack:配置=> {
如果(process.env.CLIENT_NAME === '客户端'){
返回 {
入口: {
客户端:'./src/client/main.js'
},
插件: [
新的 SkeletonWebpackPlugin({
网络包配置:{
入口: {
客户端:path.join(__dirname, './src/client/entry-skeleton.js')
},
输出: {
图书馆目标:'commonjs2'
}
}
})
]
}
} 别的 {
返回 {
入口: {
服务器:'./src/server/main.js'
}
}
}
}
}
是否可以以从外部文件读取配置详细信息并相应配置的方式配置Spring安全性.
(我不是在运行时更改配置.我在谈论在启动时从文件中读取)
我现有 Sporing安全配置的一个示例是:
@EnableWebSecurity
@Configuration
public class SecurityConfig {
@Bean
public UserDetailsService userDetailsService() throws Exception {
InMemoryUserDetailsManager manager = new InMemoryUserDetailsManager();
manager.createUser(User.withUsername("user").password("userPass").roles("USER").build());
manager.createUser(User.withUsername("admin").password("adminPass").roles("ADMIN").build());
return manager;
}
@Configuration
@Order(1)
public static class ApiWebSecurityConfigurationAdapter extends WebSecurityConfigurerAdapter {
@Override
public void configure(AuthenticationManagerBuilder auth)
throws Exception {
auth.inMemoryAuthentication().withUser("user").password("user").roles("USER");
auth.inMemoryAuthentication().withUser("admin").password("admin").roles("ADMIN");
}
protected void configure(HttpSecurity http) throws Exception {
http
.antMatcher("/api/v1/**")
.authorizeRequests()
.antMatchers("/api/v1/**").authenticated()
.and()
.httpBasic();
}
}
@Configuration
@Order(2)
public static class FormLoginWebSecurityConfigurerAdapter extends WebSecurityConfigurerAdapter {
@Override
public void configure(AuthenticationManagerBuilder auth)
throws Exception {
auth.inMemoryAuthentication().withUser("user1").password("user").roles("USER"); …Run Code Online (Sandbox Code Playgroud) 我正在尝试部署一个使用keycloak保护的非常简单的REST服务,并遇到以下错误:
由以下原因引起:org.keycloak.authorization.client.util.HttpResponse.Exception:来自服务器的意外响应:400 /错误的请求/来自服务器的响应:(“错误”:“ invalid_client”,“ error_description”:“仅承载者” ”)
这个错误是什么意思?我该如何解决?
每次我推送我的更改,无论我在哪个分支,它都会提示输入用户名.输入用户名后,会弹出一个警告,提示我输入密码.一旦我这样做,那么就会推动变革.这刚刚开始发生,每次推送更改时输入我的登录信息都很烦人.有什么建议?
$ git push fatal:遇到HttpRequestException.发送请求时发生错误." https://github.com "的用户名:jhower
我已经成功使用keycloak 4.1建立了身份验证。现在,我正在设置授权。
发布似乎比实际更长,因为它包含许多显示配置的图像。在以下SO帖子中也已提及:
403禁止错误,在访问密钥克隆中的ClientRepresentation时
Keycloak.loadUserProfile()上的Keycloak 403(禁止)
我使用创建了另一个资源(即自动创建的未删除的默认资源)/*,现在看不到403。但是,当我在应用程序中放入调试器时,我看到在权限列表中仅存在此资源:
AuthorizationContext authzContext = keycloakSecurityContext.getAuthorizationContext();
java.util.List<Permission> pems = authzContext.getPermissions();
Run Code Online (Sandbox Code Playgroud)
它仅包含默认资源,即带有的资源/*,当它也应在列表中包含资源test_role_resource时。(如果上述配置与获得身份验证的用户的权限,策略,角色匹配)
对于所有配置(在下面共享),当我使用授权选项卡下的评估选项进行测试时,结果为允许:
但是,当我通过邮递员对此资源进行请求时,得到403。
1.根据文档,我创建了一个领域角色:role_special_user,并创建了一个具有该角色和角色user的用户:user_special。
2.接下来,我的资源服务器/客户端如下所示,并启用了完整范围:
3.在授权选项卡下,我创建了一个资源,如下所示:
4.基于角色的策略是:
并使用以下权限映射到资源:
5.现在,keycloak json是:
{
"realm": "demo12",
"auth-server-url": "http://localhost:8180/auth",
"ssl-required": "none",
"resource": "server12",
"credentials": {
"secret": "XXXXXXX"
},
"confidential-port": 0,
"policy-enforcer": {}
}
Run Code Online (Sandbox Code Playgroud)
6.和Keycloak Jetty适配器配置为:
final …Run Code Online (Sandbox Code Playgroud) 将 Firebase Analytics 添加到我的 Android 应用后,应用内购买不会自动登录 Firebase。但在日志中它显示为事件记录..
V/FA-SVC (14957):记录的事件:事件{appId='com.xyz.abc', name='in_app_purchase(_iap)', params=Bundle[{quantity=1, firebase_event_origin(_o)=auto, 价格=270000000,价值=270000000,货币=INR,product_name=,product_id=com.com.xyz.abc.500coins}]}
在我的 Firebase 项目设置中,我什至链接了 Google Play 帐户并添加了 SHA-1 指纹。但我仍然在 Firebase 转换部分下看不到任何应用内购买日志。
android in-app-purchase in-app-billing firebase firebase-analytics
是否可以在Java中的for循环中指定索引/范围?
例如,我有一个列表: List<String> list;
我想从索引1而不是0运行一个for循环:
for(String s : list(start from index 1))
Run Code Online (Sandbox Code Playgroud)
或直到索引5
for(String s : list(end at index 5))
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用传统的for循环,也可以在增强的for循环中保留一个计数器,但是我想知道Java或apache集合中是否有一些现成的东西?