[ https://issues.apache.org/jira/browse/FLINK-1827?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15283180#comment-15283180 ]
josh gruenberg commented on FLINK-1827: --------------------------------------- Hi all, This change just tripped up my team: we have some tests that depend on flink-test-utils, and we're working with 1.1-SNAPSHOT to try out the SessionWindows feature. Our build suddenly stopped working last week when this change was deployed, until rmetzger helped us get unstuck (thanks! :) by adding the "test-jar" type to the pom dependency. I'll offer that I think this may not ultimately be a great technique for achieving your goal of streamlining your dev-builds. Here's why: - specifying "<type>test-jar</type>" is error-prone boilerplate for all consumers of this dependency; forgetting to include this unusual requirement leads to confusing error-messages - problems arise with transitive dependencies when depending on test-jars: the transitive dependencies do not get propagated to the consuming projects, requiring all consumers to add direct references to all dependencies themselves. This problem can snowball later if more dependencies are added to the test-jar. (See https://issues.apache.org/jira/browse/MNG-1378) I don't think it's correct to assume that all "test-related" code should always be in src/test: the purpose of this particular artifact is just to provide test-utilities; that is its only reason for existing, and so that code should be its src/main. If there were tests FOR the test-utils, then _those_ would appropriately reside in src/test (and would thus correctly be omitted from the assembly of the released jar). There's more on this here: https://maven.apache.org/plugins/maven-jar-plugin/examples/create-test-jar.html If your intent is to omit this artifact from a streamlined build, then this might be better approached via alternative maven configurations. There are probably many ways to achieve this; one possibility is via a profile in the flink-test-utils pom that disables its build (eg, by disabling the compiler plugin, as described in the second answer here: http://stackoverflow.com/questions/14614446/how-do-i-disable-the-maven-compiler-plugin). > Move test classes in test folders and fix scope of test dependencies > -------------------------------------------------------------------- > > Key: FLINK-1827 > URL: https://issues.apache.org/jira/browse/FLINK-1827 > Project: Flink > Issue Type: Improvement > Components: Build System > Affects Versions: 0.9 > Reporter: Flavio Pompermaier > Priority: Minor > Labels: test-compile > Fix For: 1.1.0 > > Original Estimate: 4h > Remaining Estimate: 4h > > Right now it is not possible to avoid compilation of test classes > (-Dmaven.test.skip=true) because some project (e.g. flink-test-utils) > requires test classes in non-test sources (e.g. > scalatest_${scala.binary.version}) > Test classes should be moved to src/main/test (if Java) and src/test/scala > (if scala) and use scope=test for test dependencies -- This message was sent by Atlassian JIRA (v6.3.4#6332)