title: cucumber-picocontainer not registering
body: <p>I'm experiencing the same situation as <a href="https://stackoverflow.com/questions/33999071/project-doesnt-recognize-cucumber-picocontainer-dependency">this question</a>, but none of the suggested solutions work for me. Basically, I have taken a download of <a href="https://github.com/browserstack/cucumber-java-browserstack" rel="nofollow noreferrer">this repository</a>. It runs fine. Then, I have split the SearchSteps module into two - one that contains the <code>@Before</code> and <code>@After</code> statement, and one that contains the steps (as I intend to reuse the initialisation code). I have added the dependency on <code>cucumber-picocontainer</code> to my <code>pom.xml</code>. </p>
  
  <p>I am getting the same error as in the question above: <code>class com.browserstack.stepdefs.SearchSteps doesn't have an empty constructor. If you need DI, put cucumber-picocontainer on the classpath</code>. I've tried all of the suggested solutions but the error remains.</p>
  
  <p>My pom.xml looks as follows:</p>
  
  <pre><code>&lt;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"&gt;
      &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;
  
      &lt;groupId&gt;com.browserstack&lt;/groupId&gt;
      &lt;artifactId&gt;cucumber-jvm-java-browserstack&lt;/artifactId&gt;
      &lt;version&gt;0.0.1-SNAPSHOT&lt;/version&gt;
      &lt;packaging&gt;jar&lt;/packaging&gt;
  
      &lt;name&gt;cucumber-jvm-java-browserstack&lt;/name&gt;
      &lt;url&gt;http://maven.apache.org&lt;/url&gt;
  
      &lt;properties&gt;
          &lt;project.build.sourceEncoding&gt;UTF-8&lt;/project.build.sourceEncoding&gt;
          &lt;cucumber.jvm.parallel.version&gt;2.2.0&lt;/cucumber.jvm.parallel.version&gt;
          &lt;surefire.maven.plugin.version&gt;2.19.1&lt;/surefire.maven.plugin.version&gt;
          &lt;acceptance.test.parallel.count&gt;1&lt;/acceptance.test.parallel.count&gt;
      &lt;/properties&gt;
  
      &lt;dependencies&gt;
  
          &lt;dependency&gt;
              &lt;groupId&gt;info.cukes&lt;/groupId&gt;
              &lt;artifactId&gt;cucumber-java&lt;/artifactId&gt;
              &lt;version&gt;1.2.5&lt;/version&gt;
          &lt;/dependency&gt;
  
          &lt;dependency&gt;
              &lt;groupId&gt;info.cukes&lt;/groupId&gt;
              &lt;artifactId&gt;cucumber-junit&lt;/artifactId&gt;
              &lt;version&gt;1.2.5&lt;/version&gt;
          &lt;/dependency&gt;
  
          &lt;dependency&gt;
              &lt;groupId&gt;org.picocontainer&lt;/groupId&gt;
              &lt;artifactId&gt;picocontainer&lt;/artifactId&gt;
              &lt;version&gt;2.14.3&lt;/version&gt;
          &lt;/dependency&gt;
  
          &lt;dependency&gt;
              &lt;groupId&gt;org.seleniumhq.selenium&lt;/groupId&gt;
              &lt;artifactId&gt;selenium-java&lt;/artifactId&gt;
              &lt;version&gt;3.0.1&lt;/version&gt;
              &lt;scope&gt;test&lt;/scope&gt;
          &lt;/dependency&gt;
  
          &lt;dependency&gt;
              &lt;groupId&gt;junit&lt;/groupId&gt;
              &lt;artifactId&gt;junit&lt;/artifactId&gt;
              &lt;version&gt;4.12&lt;/version&gt;
              &lt;scope&gt;test&lt;/scope&gt;
          &lt;/dependency&gt;
  
          &lt;dependency&gt;
              &lt;groupId&gt;org.apache.commons&lt;/groupId&gt;
              &lt;artifactId&gt;commons-io&lt;/artifactId&gt;
              &lt;version&gt;1.3.2&lt;/version&gt;
          &lt;/dependency&gt;
  
          &lt;dependency&gt;
              &lt;groupId&gt;com.browserstack&lt;/groupId&gt;
              &lt;artifactId&gt;browserstack-local-java&lt;/artifactId&gt;
              &lt;version&gt;1.0.1&lt;/version&gt;
          &lt;/dependency&gt;
  
      &lt;/dependencies&gt;
  
      &lt;build&gt;
          &lt;plugins&gt;
              &lt;plugin&gt;
                  &lt;artifactId&gt;maven-compiler-plugin&lt;/artifactId&gt;
                  &lt;version&gt;3.3&lt;/version&gt;
                  &lt;configuration&gt;
                      &lt;source&gt;1.6&lt;/source&gt;
                      &lt;target&gt;1.6&lt;/target&gt;
                  &lt;/configuration&gt;
              &lt;/plugin&gt;
              &lt;plugin&gt;
                  &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
                  &lt;artifactId&gt;maven-surefire-plugin&lt;/artifactId&gt;
                  &lt;version&gt;${surefire.maven.plugin.version}&lt;/version&gt;
                  &lt;executions&gt;
                      &lt;execution&gt;
                          &lt;id&gt;acceptance-test&lt;/id&gt;
                          &lt;phase&gt;integration-test&lt;/phase&gt;
                          &lt;goals&gt;
                              &lt;goal&gt;test&lt;/goal&gt;
                          &lt;/goals&gt;
                          &lt;configuration&gt;
                              &lt;forkCount&gt;${acceptance.test.parallel.count}&lt;/forkCount&gt;
                              &lt;reuseForks&gt;true&lt;/reuseForks&gt;
                              &lt;includes&gt;
                                  &lt;include&gt;**/*IT.class&lt;/include&gt;
                              &lt;/includes&gt;
                          &lt;/configuration&gt;
                      &lt;/execution&gt;
                  &lt;/executions&gt;
              &lt;/plugin&gt;
              &lt;plugin&gt;
                  &lt;artifactId&gt;maven-resources-plugin&lt;/artifactId&gt;
                  &lt;version&gt;3.0.2&lt;/version&gt;
                  &lt;executions&gt;
                      &lt;execution&gt;
                          &lt;id&gt;copy-resources&lt;/id&gt;
                          &lt;!-- here the phase you need --&gt;
                          &lt;phase&gt;validate&lt;/phase&gt;
                          &lt;goals&gt;
                              &lt;goal&gt;copy-resources&lt;/goal&gt;
                          &lt;/goals&gt;
                          &lt;configuration&gt;
                              &lt;outputDirectory&gt;target/test-classes/com/yourcompany/cucumberjvm&lt;/outputDirectory&gt;
                              &lt;resources&gt;
                                  &lt;resource&gt;
                                      &lt;directory&gt;src/test/resources&lt;/directory&gt;
                                      &lt;filtering&gt;true&lt;/filtering&gt;
                                  &lt;/resource&gt;
                              &lt;/resources&gt;
                          &lt;/configuration&gt;
                      &lt;/execution&gt;
                  &lt;/executions&gt;
              &lt;/plugin&gt;
              &lt;plugin&gt;
                  &lt;groupId&gt;com.github.temyers&lt;/groupId&gt;
                  &lt;artifactId&gt;cucumber-jvm-parallel-plugin&lt;/artifactId&gt;
                  &lt;version&gt;${cucumber.jvm.parallel.version}&lt;/version&gt;
                  &lt;executions&gt;
                      &lt;execution&gt;
                          &lt;id&gt;generateRunners&lt;/id&gt;
                          &lt;phase&gt;validate&lt;/phase&gt;
                          &lt;goals&gt;
                              &lt;goal&gt;generateRunners&lt;/goal&gt;
                          &lt;/goals&gt;
                          &lt;configuration&gt;
                              &lt;!-- Mandatory --&gt;
                              &lt;!-- comma separated list of package names to scan for glue code --&gt;
                              &lt;glue&gt;com.browserstack.stepdefs&lt;/glue&gt;
                              &lt;!-- These are the default values --&gt;
                              &lt;!-- Where to output the generated Junit tests --&gt;
                              &lt;outputDirectory&gt;${project.build.directory}/generated-test-sources/features&lt;/outputDirectory&gt;
                              &lt;!-- The diectory containing your feature files.  --&gt;
                              &lt;featuresDirectory&gt;src/test/java/resources/features&lt;/featuresDirectory&gt;
                              &lt;cucumberOutputDir&gt;${project.build.directory}/cucumber_reports/test_results&lt;/cucumberOutputDir&gt;
                              &lt;!-- comma separated list of output formats --&gt;
                              &lt;format&gt;junit&lt;/format&gt;
                              &lt;!-- CucumberOptions.strict property --&gt;
                              &lt;strict&gt;true&lt;/strict&gt;
                              &lt;!-- CucumberOptions.monochrome property --&gt;
                              &lt;monochrome&gt;true&lt;/monochrome&gt;
                              &lt;!-- The tags to run, maps to CucumberOptions.tags property --&gt;
                              &lt;tags&gt;"~@ignore"&lt;/tags&gt;
  
                              &lt;namingScheme&gt;pattern&lt;/namingScheme&gt;
                              &lt;!-- The class naming pattern to use.  Only required/used if naming scheme is 'pattern'.--&gt;
                              &lt;namingPattern&gt;{f}_Parallel{c}IT&lt;/namingPattern&gt;
  
                              &lt;!-- If set to true, only feature files containing the required tags shall be generated. --&gt;
                              &lt;!-- Excluded tags (~@notMe) are ignored. --&gt;
                              &lt;filterFeaturesByTags&gt;true&lt;/filterFeaturesByTags&gt;
                          &lt;/configuration&gt;
                      &lt;/execution&gt;
                  &lt;/executions&gt;
              &lt;/plugin&gt;
          &lt;/plugins&gt;
      &lt;/build&gt;
  
  &lt;/project&gt;
  </code></pre>
  
  <p>The dependency shows in my project structure. What am I doing wrong? </p>
  
  <p>Happy to provide all source code if required.</p>